Skip to main content

batchRequestsOf

Make the asynchronous function func to be called only once, even if it is called multiple times in a short time frame. The result of the first call is returned to all function invocations.

function batchRequestsOf<Func extends (...args: any[]) => any>(
// The function to batch the invocations
func: Func
): Func;

Examples

async function functionToBatch(num: number) {
return new Promise<number>(resolve => {
setTimeout(() => {
resolve(num);
}, 1000);
});
}

const batchedFunc = batchRequestsOf(functionToBatch);

batchedFunc(1);
batchedFunc(2);
batchedFunc(1);