Javascript 如何使一行等待函数返回
我有两个文件Javascript 如何使一行等待函数返回,javascript,Javascript,我有两个文件 //init.js var x = getMasterList(location); console.log(x); console.log("should have printed list"); 及 控制台的输出是 undefined should have printed list In function 问题是,由于javascript的异步性质,它在分配“x”之前会打印出“x”。我看过promises,但它似乎对我没有帮助,因为它没有改变异步行为。我还研究了回调,但似
//init.js
var x = getMasterList(location);
console.log(x);
console.log("should have printed list");
及
控制台的输出是
undefined
should have printed list
In function
问题是,由于javascript的异步性质,它在分配“x”之前会打印出“x”。我看过promises,但它似乎对我没有帮助,因为它没有改变异步行为。我还研究了回调,但似乎无法使它们适用于多个文件
有什么方法可以绕过这个问题,使其仅在“x”有值后打印?使用,您可以非常轻松地实现这一点
read.js
init.js
你需要学习如何使用承诺或回调。您不明白什么?在JS中,要使用非同步函数,使用回调、承诺或异步/等待,您提供的代码不应该出现这种情况。请提供您使用的确切代码。JS是同步的,除非你明确告诉它异步调用一个函数。我想我们是在猜测//do stuff包含了一些异步的东西,如果不起作用,输出是一样的。当函数位于另一个文件中时,是否可以使用回调?
undefined
should have printed list
In function
function getMasterList(location, callback) {
var list = [];
//do stuff
console.log("In function");
callback(list);
}
var x = getMasterList(location, function(x){
console.log(x);
console.log("should have printed list");
});