我想在范围内访问更新后的值,例如以下场景。
Var data = [];
var getData = function()
{
var onSuccess = function(result)
{
data = result;
}
var onError = function(err)
{
console.log(err);
}
ApiCall().then(onSuccess, onError);
}
getData();
console.log(data);
在上面的例子中,数据始终是空白数组[]而不是更新数据。如何访问范围之外的更新数据?
答案 0 :(得分:1)
你不能也不应该。如果希望代码以异步方式运行,则需要同步代码。您可以使用承诺链来执行此操作:
return ApiCall().then(onSuccess, onError);
...
getData().then(console.log);
答案 1 :(得分:0)
尝试以下方法 - 您基本上需要回复您的承诺。
Var data = [];
var getData = function()
{
var onSuccess = function(result)
{
data = result;
return data;
}
var onError = function(err)
{
console.log(err);
}
return ApiCall().then(onSuccess, onError);
}
getData().then(function (data) { console.log(data); });