GITLAB

Nattapon Wongpaet / Hospital

Sign in
  • Sign in
  • Project
  • Files
  • Commits
  • Network
  • Graphs
  • Issues 0
  • Merge Requests 0
  • Wiki
  • hospital
  • node_modules
  • p-reduce
  • index.js
  • 33ead877   first code Browse Code ยป
    Nattapon Wongpaet
    2018-10-12 18:33:32 +0700  
index.js 413 Bytes
Edit Raw Blame History Permalink
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
'use strict';
module.exports = (iterable, reducer, initVal) => new Promise((resolve, reject) => {
	const iterator = iterable[Symbol.iterator]();
	let i = 0;

	const next = total => {
		const el = iterator.next();

		if (el.done) {
			resolve(total);
			return;
		}

		Promise.all([total, el.value])
			.then(value => {
				next(reducer(value[0], value[1], i++));
			})
			.catch(reject);
	};

	next(initVal);
});