我现在有10000条网络请求,我怎么在第一条请求有结果返回,在请求第二条,依次类推

我现在的需求就是有10000条网络请求,让他们按照顺序执行,第一天请求完数据之后,存到数据库,让后在请求第二条,一次类题,不知到大家有没有好的方法。

阅读 2.1k
2 个回答

如果你的请求是有规律的,比如id是连续的,可以在每一条请求成功的回调或者代理里把id处理一下再发起下一次请求。
一个比较简单粗暴的方式:
用NSOperationQueue,然后maxConcurrentOperationCount设置成1,把10000条请求都加进去。如果执行的request没有结果就把queue cancel掉。不过这样做省代码,不省内存。

function apiCall (i){
    var i = i || 0 ;
    $http.get(i++).then(function(response){
        if(response.status=='ok'){
            apiCall(i);
        }
    },function(error){
        console.log(error);
    });
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进