mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 18:55:26 +00:00
refactor(util) exec.parallel
This commit is contained in:
parent
d02a183d4d
commit
0f97483146
1 changed files with 11 additions and 21 deletions
32
lib/util.js
32
lib/util.js
|
|
@ -756,39 +756,29 @@
|
|||
};
|
||||
|
||||
exec.parallel = function(funcs, callback) {
|
||||
var i, func,
|
||||
funcsCount = funcs.length,
|
||||
count = 0,
|
||||
allData = [];
|
||||
var count = 0,
|
||||
allData = [],
|
||||
funcsCount = funcs.length;
|
||||
|
||||
for (i = 0; i < funcsCount; i++) {
|
||||
func = funcs[i];
|
||||
callCheckFunc(i, func);
|
||||
}
|
||||
funcs.forEach(function(func, num) {
|
||||
exec(func, function() {
|
||||
checkFunc(num, arguments);
|
||||
});
|
||||
});
|
||||
|
||||
function checkFunc(num, data) {
|
||||
var i, n = data.length,
|
||||
params = [];
|
||||
var length = data.length;
|
||||
|
||||
++count;
|
||||
|
||||
if (n >= 2) {
|
||||
for (i = 0; i < n; i++)
|
||||
params[i] = data[i];
|
||||
|
||||
allData[num] = params;
|
||||
if (length >= 2) {
|
||||
allData[num] = data;
|
||||
} else
|
||||
allData[num] = data[0];
|
||||
|
||||
if (count === funcsCount)
|
||||
exec.ret(callback).apply(null, allData);
|
||||
}
|
||||
|
||||
function callCheckFunc(num, func) {
|
||||
exec(func, function() {
|
||||
checkFunc(num, arguments);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue