22 lines
500 B
JavaScript
22 lines
500 B
JavaScript
|
module.exports = function (arr, iterator, callback) {
|
||
|
callback = callback || function () {};
|
||
|
if (!Array.isArray(arr) || !arr.length) {
|
||
|
return callback();
|
||
|
}
|
||
|
var completed = 0;
|
||
|
var iterate = function () {
|
||
|
iterator(arr[completed], function (err) {
|
||
|
if (err) {
|
||
|
callback(err);
|
||
|
callback = function () {};
|
||
|
}
|
||
|
else {
|
||
|
++completed;
|
||
|
if (completed >= arr.length) { callback(); }
|
||
|
else { iterate(); }
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
iterate();
|
||
|
};
|