如何获得Promise成功范围之外的更新价值

时间:2015-10-06 18:01:07

标签: javascript angularjs

我想在范围内访问更新后的值,例如以下场景。

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

在上面的例子中,数据始终是空白数组[]而不是更新数据。如何访问范围之外的更新数据?

2 个答案:

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