Javascript 如何使两个console.log输出相同的值?
此程序首先输出Javascript 如何使两个console.log输出相同的值?,javascript,callback,Javascript,Callback,此程序首先输出0,然后输出189。我知道这是由于javascripts异步执行的。使两个日志都输出的正确方法是什么?不进地狱 roaming = []; connection.query("SELECT land FROM roaming", function (err, res) { if (err) { console.log("Error: " + err); } else { res.forEach(function(entry){
0
,然后输出189
。我知道这是由于javascripts异步执行的。使两个日志都输出的正确方法是什么?不进地狱
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);
在Javascript中,可以使用“回调函数”。这意味着函数可以作为参数传递。 例如:
所以您可以传递回调函数,比如hello('a',callback) 在Javascript中,可以使用“回调函数”。这意味着函数可以作为参数传递。 例如:
所以您可以传递回调函数,比如hello('a',callback) 我会使用async/await
async function asyncStuff() {
//async stuff
}
await asyncStuff();
我会使用async/await
async function asyncStuff() {
//async stuff
}
await asyncStuff();
这似乎是一个解决办法,我可能是这里的错。但这被认为是做这件事的标准方式吗?如果我有一个函数需要两个SQL调用的值呢。然后我需要在我的回调中添加一个回调?这似乎是一个解决方法,我可能是这里的错。但这被认为是做这件事的标准方式吗?如果我有一个函数需要两个SQL调用的值呢。那么我需要在我的回调中添加一个回调?你不能得到相同的回调
connection.query()
是一个异步函数。您的第二个console.log()
立即运行,它不能等待它完成。这就是异步函数有回调的原因。你不能得到相同的回调connection.query()
是一个异步函数。您的第二个console.log()
立即运行,它不能等待它完成。这就是异步函数有回调的原因。