调用过程无法正常运行,因为它在Node.js中的For循环中

时间:2018-11-13 19:30:04

标签: node.js

循环中的调用过程不起作用。默认情况下,它是一个同步过程。

请帮助我了解我的代码出了什么问题

for (var i = 0; i < results.length; i++) {

  manageMerchantAccountInput['records'][0]['id'] = results[i].id;

  procedureArray.push(new Promise((resolve, reject) =>

    pool.getConnection(function(err, connection) {

      connection.query('CALL `mobiezyb2c`.`manageMerchantAccount_prc`( ?, @p_out_mssg_flg, @p_out_mssg)', [JSON.stringify(manageMerchantAccountInput)],
        function(error, results, fields) {
          connection.release();

          if (error) console.log(error);
          else

            resolve(results[0][0]);
        });
    })
  ))
}`

1 个答案:

答案 0 :(得分:0)

如果您使用的是异步执行(例如Promises),并且必须按顺序执行-网上有很多可行的示例。

我在Gist中展示的那些示例之一,其中我利用reduce()函数以便在参数数组上顺序执行promise。这是这个简化的示例:

https://gist.github.com/anvk/5602ec398e4fdc521e2bf9940fd90f84

也许可以解决您的问题?