从JavaScript回调中访问值

时间:2013-08-12 19:33:49

标签: javascript angularjs

我正在尝试将Anglular.js服务回调中的值推送到数组中。任何帮助,将不胜感激。感谢。

$scope.checkAddonDependencies = function(addon) {
    var addons = new Array();
    var arr = filterFilter($scope.addons, {checked: true});
    var length = arr.length, element = null;

    for (var i = 0; i < length; i++) {
        element = arr[i]['addoncode'];
        addons.push(element); //works fine

        myService.addon_dependencies(arr[i]['addoncode']).then(function(dependency) {
             addons.push(dependency); //not working
        });

    }

    console.log(addons);    
}

1 个答案:

答案 0 :(得分:0)

基本上你需要像这样处理回调中的值:

myService.addon_dependencies(arr[i]['addoncode']).then(function(dependency) {
    addons.push(dependency); 
});

更新

由于函数then()的回调是异步的,因此无法保证console.log(addons)在代码顺序中显示任何内容。