@akala/core
Version:
58 lines • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const helpers_1 = require("./helpers");
function array(array, body, complete) {
var loop = function (i) {
if (i == array.length)
complete();
else
try {
var promise = body(array[i], i, function (error) {
if (error)
complete(error);
else
setImmediate(loop, i + 1);
});
if (promise && helpers_1.isPromiseLike(promise)) {
promise.then(() => setImmediate(loop, i + 1), complete);
}
}
catch (e) {
complete(e);
}
};
loop(0);
}
exports.array = array;
function object(o, body, complete) {
array(Object.keys(o), function (key, i, next) {
body(o[key], key, next);
}, complete);
}
exports.object = object;
function each(it, body, complete) {
if (complete) {
if (Array.isArray(it) || typeof (it['length']) != 'undefined')
return array(it, body, complete);
return object(it, body, complete);
}
else {
return new Promise((resolve, reject) => {
if (Array.isArray(it) || typeof (it['length']) != 'undefined')
return array(it, body, function (err) {
if (err)
reject(err);
else
resolve();
});
return object(it, body, function (err) {
if (err)
reject(err);
else
resolve();
});
});
}
}
exports.each = each;
//# sourceMappingURL=eachAsync.js.map