循环中的调用过程不起作用。默认情况下,它是一个同步过程。
请帮助我了解我的代码出了什么问题
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]);
});
})
))
}`
答案 0 :(得分:0)
如果您使用的是异步执行(例如Promises),并且必须按顺序执行-网上有很多可行的示例。
我在Gist中展示的那些示例之一,其中我利用reduce()函数以便在参数数组上顺序执行promise。这是这个简化的示例:
https://gist.github.com/anvk/5602ec398e4fdc521e2bf9940fd90f84
也许可以解决您的问题?