4
我需要在循環中運行20-200個ajax請求,但不要傷害google.maps.Geocoder
我希望在每次調用之間設置延遲10秒。然而ajax
請求是異步的,因此我請求下一個ajax
對前一個響應成功的請求。如果我的反應太快,應該延遲。如何在循環中運行angularjs ajax請求但延遲?
這裏是我寫到目前爲止代碼:
...
$scope.addressList = ....;
$scope.taskCount = $scope.addressList.length;
geoTaskLoopAsync();
function geoTaskLoopAsync(){
// on success douncount taskCount
var geo = new google.maps.Geocoder();
geocoder.geocode({
'address': address
}, function(results, status) {
$scope.$apply(function() {
// do something with response
if($scope.taskCurr <= $scope.taskCount){
$scope.taskCurr++;
return geoTaskLoopAsync();
}
return;
});
});
那麼下一步是什麼?
我可以添加類似:
stop = $timeout(function() {
if($scope.taskCurr <= $scope.taskCount){
geoTaskLoopAsync();
} else {
$timeout.cancel(stop);
}
}, 10000);
或有我其他的方式?
謝謝
我以爲你的'服務'實現像'工廠' – 2013-05-09 18:48:09