Javascript 嵌套异步函数未及时返回数据的问题

Javascript 嵌套异步函数未及时返回数据的问题,javascript,angularjs,Javascript,Angularjs,我依赖于一个组件,即需要返回值的函数 不幸的是,我不知道如何在适当的时候从下面的嵌套异步函数(addressAutocomplete())返回一些内容: 当addressAutocomplete函数完成时,resultsvar已经返回,它当然是一个空数组 有人能帮忙吗?您需要向chooseAddress的被调用方公开调用是异步的。您可以通过返回一个 将实现更新为 $scope.chooseAddress = function (input) { var deferred = $q.def

我依赖于一个组件,即需要返回值的函数

不幸的是,我不知道如何在适当的时候从下面的嵌套异步函数(
addressAutocomplete()
)返回一些内容:

当addressAutocomplete函数完成时,
results
var已经返回,它当然是一个空数组


有人能帮忙吗?

您需要向
chooseAddress
的被调用方公开调用是异步的。您可以通过返回一个

将实现更新为

$scope.chooseAddress = function (input) {
    var deferred = $q.defer();

    if (input) {
        geolocationService.addressAutocomplete(input, function (data) {
            deferred.resolve(data.predictions);
        });
    } else {
        deferred.resolve([]);
    }
    return deferred.promise;
};
然后调用
chooseAddress
like

$scope.chooseAddress(input).then(function(result){
    // the result will be available here
});

非常感谢Anzeo!
$scope.chooseAddress(input).then(function(result){
    // the result will be available here
});