promise-chunk-generator
Version:
An async generator that takes an array of promise executor functions and creates promises in chunks with fault-tolerance
15 lines (12 loc) • 492 B
JavaScript
module.exports = ({ promise, timeoutDuration }) => {
promise = promise || new Promise(resolve => resolve);
timeoutDuration = timeoutDuration || 5 * 60 * 1000;
const timeoutPromise = new Promise((_, reject) => {
const timeoutId = setTimeout(() => {
clearTimeout(timeoutId);
const reason = `Promise timeout occured after ${timeoutDuration} ms`;
reject(new Error(reason), reason);
}, timeoutDuration);
});
return Promise.race([promise, timeoutPromise]);
};