phunctional
Version:
"Almost" functional programming utils methods
12 lines (9 loc) • 325 B
JavaScript
;
const makePromise = (fn, item, delay) =>
new Promise(resolve => setTimeout(() => resolve(fn(item)), delay));
module.exports = (items, delay = 0) => fn =>
Array.isArray(items) ?
Promise.all(
items.reduce((acc, item, idx) =>
acc.concat(makePromise(fn, item, idx * delay)), [])
) : Promise.all([]);