async function enqueueRequest()

in src/GraphService.ts [114:135]


    async function enqueueRequest(relativeUrl: string, method: string): Promise<BatchResponse> {
        ++lastRequestId;

        let onResolve: ResolveFunc<BatchResponse> = () => { /**/ };
        let onReject: RejectFunc = () => { /**/ };
        // tslint:disable-next-line:promise-must-complete -- will be resolved in a separate function
        const p = new Promise<BatchResponse>((resolve, reject) => {
            onResolve = resolve;
            onReject = reject;
        });

        queue[`${lastRequestId}`] = { id: `${lastRequestId}`, url: relativeUrl, method, onResolve, onReject };
        if (Object.keys(queue).length >= 20) {
            await processBatch();
        }
        if (batchTimer) {
            clearTimeout(batchTimer);
        }
        batchTimer = window.setTimeout(async () => { await processBatch(); }, 0);

        return p;
    }