UNPKG

race-until

Version:

Race a promise against a time bomb promise.

16 lines (14 loc) 460 B
export function timebomb(timeout = 3000, timeoutResponse = 'Timeout') { return new Promise((resolve, reject) => { setTimeout(() => { if (timeoutResponse instanceof Error) { reject(timeoutResponse); } else { resolve(timeoutResponse); } }, timeout); }); } export function raceUntil(p, timeout = 3000, timeoutResponse = 'Timeout') { return Promise.race([Promise.resolve(p), timebomb(timeout, timeoutResponse)]); }