【nodejs】async

async.mapSeries使用

在处理数据时,使用for 循环进行遍历处理数据,但是发现跳出callback时,所有数据为空,数据处理起来特别麻烦,如:

getBugData4WReport(function (data,err) {
    console.log(data);
    for(var i = 0;i<data.length; i++){
        getDeveloperBugData(data[i].project,data[i].name,function (data) {
            dataResult.push(data);
            console.log("dataResult",dataResult)
        });
     callback(data);   //1
    }
     callback(data);   //2
})

若在2处调用时,data值为undefined

下面为异步调用,async.mapSeries

getBugData4WReport(function (data,err) {
    async.mapSeries(data, (item, done) => {
            console.log(item);
            getDeveloperBugData(item.project,item.name,function (data1) {
                console.log(data1);
                done(null, data1);
            });
        }, (err, data2) => {
            console.log(data2);
    })
})

datagetBugData4WReport 函数回调要处理的数据,若使用for循环等处理数据,在循环为无法继承处理该数据

done 为 函数处理的数据,将处理好的数组数据传给data2

多个回调函数的值

async.series({
    one: function(callback){
        callback(null, 1);
    },
    two: function(callback){
        callback(null, 2);
    }
},function(err, results) {
    console.log(results);
});
posted @ 2017-02-27 09:47  guanqinghua  阅读(48)  评论(0编辑  收藏  举报