我想在服务中的angularJs中进行后续的ajax调用.
我尝试过这样的事情:
var requests = [ {'url': 'call1'},{'url': 'call2'},{'url': 'call3'} ]; return $q.all([ $http({ url: requests[0],method: "POST" }).then( /*callback*/ ),$http({ url: requests[1],method: "POST" }).then( /*callback*/ ) ]);
但这使得alla ajax并行.我需要一种方法来进行后续调用,所以在第一次结束后,它会调用第二个….
解决方法
你可以链接承诺:
var requests =[{'url':'index.html'},{'url':'index.html'},{'url':'index.html'}]; function makeCall(n) { return $http({url:requests[n].url+"?n="+n,method:"GET"}).then(function(r) { if (n+1<requests.length) return makeCall(n+1); }); } makeCall(0);