【发布时间】:2016-07-28 20:13:02
【问题描述】:
我有一个数组。当我通过数组循环时,我编写请求并进行 http 调用。但我希望每个 http PUT 请求都在 16 秒的间隙内发出。我尝试了 n 种方法。我尝试用 $timeout、$interval 包装 http.then 以循环 1 次,将 timeout:16000 添加到 http 配置。他们都没有延迟 http put 调用。只有第一次在循环中调用延迟。如何将每个实际的 http 调用延迟 16 秒?这是我的代码。我在 http 配置和 $timeout 中添加了超时。我一次尝试一个,两个。没有工作
angular.forEach($scope.provisionDataArray, function(provReq, index) {
var userProvisionSCIMUrl = someurl;
scimProvReq = prepareProvisionRequestJSON(provReq, $scope.refData, $scope.App);
var scimReq = {
method: 'PUT',
url: someurl,
headers: {
'Content-Type': 'application/json'
},
timeout: 16000,
data: scimProvReq
}
$timeout(function() {
$http(scimReq).then(function successCallback(response) {
var provStatus = {};
provStatus.reqNum = index;
provStatus.nbid = response.data.id;
provStatus.id = response.data.request.id;
provStatus.status = response.data.request.status;
provStatus.statusMessage = response.data.request.statusMessage;
$scope.provisionStatus.push(provStatus);
},
function errorCallback(response) {
$scope.errors.push({
error: "Error processing,
line: index
});
});
},16000,$scope.provisionDataArray.length)
}
});
【问题讨论】:
标签: angularjs http timeout delay