sinon
Version:
JavaScript test spies, stubs and mocks.
34 lines (27 loc) • 748 B
JavaScript
;
/* istanbul ignore next : not testing that setTimeout works */
function nextTick(callback) {
setTimeout(callback, 0);
}
/**
* @callback NextTickFunction
* @param {...unknown} args
* @returns {unknown}
*/
/**
* Returns a next-tick function.
*
* @param {object} [process] The process object
* @param {NextTickFunction} [setImmediate] The setImmediate function
* @returns {NextTickFunction} The next-tick function
*/
function getNextTick(process, setImmediate) {
if (typeof process === "object" && typeof process.nextTick === "function") {
return process.nextTick;
}
if (typeof setImmediate === "function") {
return setImmediate;
}
return nextTick;
}
module.exports = getNextTick;