UNPKG

race-until

Version:

Race a promise against a time bomb promise.

29 lines (23 loc) 912 B
(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 }); }));