此计划首先打印0
然后189
。我知道它是由于javascripts异步执行它。将两个日志输出189
的正确方法是什么?没有进入回调地狱?
roaming = [];
connection.query("SELECT land FROM roaming", function (err, res) {
if (err) {
console.log("Error: " + err);
} else {
res.forEach(function(entry){
roaming.push(entry.land);
});
console.log(roaming.length);
}
});
console.log(roaming.length);
答案 0 :(得分:2)
我会使用async / await
async function asyncStuff() {
//async stuff
}
await asyncStuff();
答案 1 :(得分:1)
在Javascript中,您可以使用"回调函数"。这意味着函数可以作为参数传递。 例如:
function hello (val1, callback) {
console.log(val1);
callback();
}
function callback() {
//do something.
}
所以你可以传递回调函数,比如hello(' a',callback);