小编cas*_*man的帖子

Javascript Angular:如何链接未知数量的承诺

我正在写一个Angular.js服务来提取一些JSONFeed.最初,该服务不知道要请求的资源数量/数量; 它们依赖于另一个请求返回的ID.

我很头疼将$http服务请求链接在一起.有没有常用的模式来做到这一点?

我已尝试Array.reduce在另一个线程上建议的技术,但在同步ID和请求的数据时遇到问题.

这就是我到目前为止所拥有的.有没有人有什么建议?

aService.factory('dummy', function($http){
    // Dummy resources.
    var resources = [   
      'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',
      'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js',
      'http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'
    ];
    return {
        data: function(callback){

            var jquerySources = []

            var promiseChain = $http({method: 'GET', url: resources[0]});
            var l = resources.length
            for (var i = 1; i < l; i++ ){
                promiseChain.then(function(data){

                    jquerySources.push({
                        url: resources[i],
                        source: data
                    });

                    promise_chain = $http({method: 'GET', url: resources[i]});
                    if (i === l){
                        return callback(jquerySources);
                    }
               });
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

谢谢.

javascript asynchronous promise

7
推荐指数
1
解决办法
3349
查看次数

标签 统计

asynchronous ×1

javascript ×1

promise ×1