异步每个序列未显示正确的结果,显示数组的一个元素而不是所有元素

问题描述 投票:0回答:1

我是Nodejs的新手,并使用async.eachSeries来迭代该数组,当该数组具有四个元素时,它在最终响应中仅显示一个元素,并向该数组添加一个称为“支付类型”的新变量,该变量也不分配。我想将数组中的所有元素显示为最终输出。下面是代码,这种方法正确吗?我还看到它首先显示console.log中的所有元素,但在邮递员中它仅显示一个数据。如何解决此问题,以在async.eachSeries完成后将所有数组发送给邮递员。

代码:

let members=[];
 Utils.async.each(response,(rowTrainers, callback) => {
                        var result=JSON.parse(JSON.stringify(rowTrainers));
             rowTrainers.dataValues.payment_type =  "Cashfree";
                            return callback();
                         }) ,err=>{
                            if(err){
                                console.error("Error: ", err);
                                cb(err, []); 
                            }else{
              members=rowTrainers;
                            Utils.sendResponse(1, rowTrainers , "success", q)

                            }
                        }

实际输出:

{
    "message": [
        {
             "firstName": “Abc”,
            "lastName": "xyzzy”,
       “age”:24
        }
    ]
}

预期输出:

{
    "message": [
        {
            "firstName": “Abc”,
            "lastName": “xyzzy”,
        “age”:24,
“payment_type”:”Online”
        },
{
            "firstName": “def”,
            "lastName": “pmo”,
“age”:23,
“payment_type”:”Online”

        },
{
            "firstName": “per”,
            "lastName": “abc”,
      “age”:23,
“payment_type”:”Online”

        }
    ]
}
javascript node.js async.js
1个回答
0
投票
尝试以下操作:

let members=[]; Utils.async.each(response,(rowTrainers, callback) => { var result=JSON.parse(JSON.stringify(rowTrainers)); rowTrainers.dataValues.payment_type = "Cashfree"; members.push(rowTrainers); callback(); }) ,err=>{ if(err){ console.error("Error: ", err); cb(err, []); }else{ Utils.sendResponse(1, members , "success", q) } }

© www.soinside.com 2019 - 2024. All rights reserved.