es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
21 lines (20 loc) • 630 B
JavaScript
//#region src/compat/function/defer.ts
/**
* Defers invoking the `func` until the current call stack has cleared. Any additional arguments are provided to func when it's invoked.
*
* @param func The function to defer.
* @param args The arguments to invoke `func` with.
* @returns Returns the timer id.
*
* @example
* defer((text) => {
* console.log(text);
* }, 'deferred');
* // => Logs 'deferred' after the current call stack has cleared.
*/
function defer(func, ...args) {
if (typeof func !== "function") throw new TypeError("Expected a function");
return setTimeout(func, 1, ...args);
}
//#endregion
exports.defer = defer;