bbo
Version:
bbo is a utility library of zero dependencies for javascript.
34 lines (25 loc) • 874 B
JavaScript
;
var cachedSetTimeout = setTimeout;
function createSleepPromise(timeout, _ref) {
var useCachedSetTimeout = _ref.useCachedSetTimeout;
var timeoutFunction = useCachedSetTimeout ? cachedSetTimeout : setTimeout;
return new Promise(resolve => {
timeoutFunction(resolve, timeout);
});
}
function sleep(timeout) {
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
useCachedSetTimeout = _ref2.useCachedSetTimeout;
var sleepPromise = createSleepPromise(timeout, {
useCachedSetTimeout: useCachedSetTimeout
});
function promiseFunction(value) {
return sleepPromise.then(() => value);
}
promiseFunction.then = function () {
return sleepPromise.then.apply(sleepPromise, arguments);
};
promiseFunction.catch = Promise.resolve().catch;
return promiseFunction;
}
module.exports = sleep;