dora
Version:
A fully pluggable server for development.
32 lines (28 loc) • 654 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = reduceAsync;
function reduceAsync(arr, memo, iterator, callback) {
var _memo = memo;
var index = 0;
function next() {
index = index + 1;
if (arr[index]) {
return run(arr[index]); // eslint-disable-line no-use-before-define
}
if (callback) callback(null, _memo);
return _memo;
}
function run(item) {
iterator(_memo, item, function (err, result) {
if (err) {
throw new Error(err);
}
_memo = result;
next();
});
}
return run(arr[index]);
}
module.exports = exports['default'];