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();
|
|
};
|