AngularJS에 개체가 포함 된 배열이 있습니다. 이러한 객체의 속성 값 (snooz
)을 기반으로 POST 요청 (getData.sonnzeUpdate()
)을 호출해야합니다. 배열의 각 객체를 살펴본 후 마침내 GET 요청을 호출해야합니다. 내 문제는 POST 요청의 응답 (res
in .then(function(res){}
)을 받기 전에 GET 요청 (함수 $scope.getTableData
내부)이 실행 된 것입니다.Ajax for each 루프 호출 각도 각도
나는 angular.forEach(
으로 시도했으며 $q
으로 시도했습니다. 그들이 완료 한 후, 그 배열에 약속을 추가하기 때문에, $q.all(notifiedAlarms)
:
여기에 내 코드 샘플 코드에서
var notifiedAlarms = [];
var d = new Date();
var checkTine = d.getHours() + "-" + d.getMinutes() + "-" + "00";
angular.forEach(snoozedData, function (snoozed_asset, asset_key) {
if (snoozed_asset.snooz == checkTine) {
var data = {};
snoozed_asset.snooz = '';
data.data = snoozed_asset;
var deferred = $q.defer();
getData.sonnzeUpdate(data).then(function (res) {
if (res.status == '200') {
toastr.info('Alarm with property ' + data.data.actualFailureArea + ' is activated');
// $scope.getTableData(); //donot want to call it here. as same call will for multiple time
notifiedAlarms.push(deferred.promise);
} else {
// console.log('Error in update');
}
});
} else {
// no matching snooz
}
});
$q.all(notifiedAlarms).then($scope.getTableData());
발전기가 이러한 종류의 물건에도 적합하다는 점에 유의하십시오. 모든 약속 물건을 정리합니다. 다운 레벨 발생기는 여전히 TS에서는 문제가있다. –
여기에 업데이트 된 코드 – SSS