race-until
Version:
Race a promise against a time bomb promise.
29 lines (23 loc) • 912 B
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = global || self, factory(global['race-until'] = {}));
}(this, function (exports) { 'use strict';
function timebomb(timeout = 3000, timeoutResponse = 'Timeout') {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (timeoutResponse instanceof Error) {
reject(timeoutResponse);
} else {
resolve(timeoutResponse);
}
}, timeout);
});
}
function raceUntil(p, timeout = 3000, timeoutResponse = 'Timeout') {
return Promise.race([Promise.resolve(p), timebomb(timeout, timeoutResponse)]);
}
exports.raceUntil = raceUntil;
exports.timebomb = timebomb;
Object.defineProperty(exports, '__esModule', { value: true });
}));