我试图获取了一定的成效,并以此为基础进行这些结果的进一步处理,但我无法继续工作顺序是,节点mysql的顺序查询执行
var sql = query1;
con.query(sql, function (err, results) {
if (err) throw err;
// ids => 5,2,3,4
for (i = 0; i < results.length; i++) {
target_user = results[i].ID
var sql = "DELETE QUERY";
con.query(sql, function (err) {
if (err) throw err;
console.log(target_user)
var sql = "INSERT QUERY";
console.log(sql)
con.query(sql, function (err) {
if (err) throw err;
})
})
}
})
上面的代码异步运行,什么我想到的是在这样的
// "DELETE QUERY";
//5
// "INSERT QUERY";
// "DELETE QUERY";
//2
// "INSERT QUERY";
等环路输出..
但我得到的是
// "DELETE QUERY";
//5
// "DELETE QUERY";
//5 //not fetching the next array val
// "INSERT QUERY";
// "INSERT QUERY";
任何帮助都非常appriciated。
编辑
从答案我更新了这样的代码现在的代码看起来像这样
aysnc.forEach(results, function(elem, callback){
target_user = elem.id
console.log('out')
console.log(target_user)
con.query(sql, function (err) {
if (err) throw err;
console.log('in')
console.log(target_user)
})
})
一件奇怪的事发生了输出
out
5
in
5
out
2
in
5 //when it is supposed to be 2
这仅仅是工作的解决方案!谢谢。 –