Java嵌套的for循环回调

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

我具有不应阻止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不会按预期输出连续两个相同的数字。我该如何解决这个问题?

javascript mysql callback
1个回答
0
投票
我不相信这里有问题。仅当function(error, results1, fields)...的结果完成时,才调用回调函数(pool.query)和后续的UPDATE语句。结果,由于您以最快的速度生成pool.query调用,因此日志可能会出现乱序。
© www.soinside.com 2019 - 2024. All rights reserved.