async 异步循环
let async = require('async');
let arr = [
{id: 1, age: 2},
{id: 2, age: 3},
{id: 3, age: 4}
];
function print(obj, cb) {
if(obj.id === 2) {
cb("it's a err")
}else {
console.log("print ->" + obj.id);
cb(null)
}
}
async.mapSeries(arr,function(obj, callback){
print(obj, function(err) {
callback(err, obj);
})
}, function(err, ret){
console.log(err, ret);
});
//print ->1
//it's a err [ { id: 1, age: 2 }, { id: 2, age: 3 } ]
async.eachSeries(arr,function(obj, callback){
print(obj, function(err) {
callback(err);
})
}, function(err){
console.log(err);
});
//print ->1
//it's a err
async.each(arr, function(obj, callback) {
print(obj, function(err) {
callback(err);
})
}, function(err){
console.log(err);
});
//print ->1
//it's a err
//print ->3