UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

34 lines (25 loc) 874 B
'use strict'; 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;