es-promise-ext
Version:
Native promise extensions for javascript and typescript.
23 lines (22 loc) • 644 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = delay;
/**
* Delay between the promise chain.
*
* @return {Function<T>}
* A value which pass through within a promise
*
* @example
* Promise.resolve(3)
* .then(delay(300))
* .then(doSomething)
* // return 3 in a promise after delay 300 ms
*/
function delay(millisecond) {
if (!Number.isInteger(millisecond) || millisecond < 0)
throw TypeError('Promise.prototype.delay parameter 1 must be a positive integer');
return (value) => new Promise(resolve => {
setTimeout(() => resolve(value), millisecond);
});
}