add async utils
This commit is contained in:
parent
58a859267c
commit
8fd883b6c6
@ -1366,3 +1366,44 @@ utils.ccmp = function(a, b) {
|
|||||||
|
|
||||||
return res === 0;
|
return res === 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
utils.iter = function iter(from, to, iter, callback) {
|
||||||
|
var pending = to - from;
|
||||||
|
var i;
|
||||||
|
|
||||||
|
callback = utils.asyncify(callback);
|
||||||
|
|
||||||
|
if (pending <= 0)
|
||||||
|
return callback();
|
||||||
|
|
||||||
|
function next(err) {
|
||||||
|
if (err)
|
||||||
|
return callback(err);
|
||||||
|
if (!--pending)
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = from; i < to; i++)
|
||||||
|
iter(i, next);
|
||||||
|
};
|
||||||
|
|
||||||
|
utils.forEach = function forEach(arr, iter, callback) {
|
||||||
|
var pending = arr.length;
|
||||||
|
var i;
|
||||||
|
|
||||||
|
callback = utils.asyncify(callback);
|
||||||
|
|
||||||
|
if (!pending)
|
||||||
|
return callback();
|
||||||
|
|
||||||
|
function next(err) {
|
||||||
|
if (err)
|
||||||
|
return callback(err);
|
||||||
|
if (!--pending)
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
|
||||||
|
arr.forEach(function(item) {
|
||||||
|
iter(item, next);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user