我具有不应阻止I / O的嵌套函数。
for(let i = 1; i < category_amount;i++){
pool.query('SELECT COUNT(1) FROM threads_mphp WHERE category = ?',i,function(error, results1, fields) {
console.log(i);
pool.query('UPDATE category SET posts=? where category=?',[results1[0]['COUNT(1)'],i],function() {
console.log(i);
});
});
}
两个查询都使用相同的索引i。我不能将let用于此类目的。console.logs不会按预期输出连续两个相同的数字。我该如何解决这个问题?
function(error, results1, fields)...
的结果完成时,才调用回调函数(pool.query
)和后续的UPDATE语句。结果,由于您以最快的速度生成pool.query
调用,因此日志可能会出现乱序。