zoukankan      html  css  js  c++  java
  • 【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);
    });
  • 相关阅读:
    python 中多个装饰器的执行顺序:
    Python基础思维导图
    怎样写出靠谱的RESUTful API接口?
    python中yield()的用法详解
    Flask思维导图
    Django的设计模式
    MySQL
    MySQL
    Linux
    zsh oh-my-zsh 插件推荐
  • 原文地址:https://www.cnblogs.com/guanhuohuo/p/12533648.html
Copyright © 2011-2022 走看看