如何让我的console.logs输出相同的值?

时间:2017-05-11 09:13:30

标签: javascript callback

此计划首先打印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);

2 个答案:

答案 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);