UNPKG

promisu

Version:

functional promise with map filter reduce scan all race every some few try waitfor finally queue debounce throttle

27 lines (20 loc) 532 B
const PromisuScan = (iterable, reduceFn, initValue) => new Promise((resolve, reject) => { const iterator = iterable[Symbol.iterator]() let index = 0 const totalArr = [] const next = total => { const el = iterator.next() totalArr.push(total) if (el.done) { resolve(Promise.all(totalArr)) return } Promise.all([total, el.value]) .then(value => { next(reduceFn(value[0], value[1], index++)) }) .catch(reject) } next(initValue) }) module.exports = PromisuScan