UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

58 lines 1.33 kB
export function asCallback(promise, callback) { promise.then(function (result) { return callback(null, result); }, callback); } export var once = function once(cb) { var fired = false; return function () { if (fired) return; fired = true; cb.apply(void 0, arguments); }; }; export function parallel(fns, cb) { var callback = once(cb); var count = fns.length; if (count === 0) { return void callback(null, []); } var results = new Array(count); var _loop = function _loop() { var idx = i; var fn = fns[i]; fn(function (err, value) { if (err) return callback(err); results[idx] = value; if (--count <= 0) callback(null, results); }); }; for (var i = 0; i < fns.length; i++) { _loop(); } } export function settled(fns, cb) { var callback = once(cb); var count = fns.length; if (count === 0) { return void callback(null, []); } var results = new Array(fns.length); var _loop2 = function _loop2() { var idx = i; var fn = fns[i]; fn(function (err, value) { results[idx] = err ? { fulfilled: false, value: err } : { fulfilled: true, value: value }; if (--count <= 0) callback(null, results); }); }; for (var i = 0; i < fns.length; i++) { _loop2(); } }