세 개의 비동기 함수가 실행 된 후 함수를 실행하려면 어떻게해야합니까? 이에 대한 해결 방법은 글로벌 카운터입니다.모든 비동기 함수가 실행 된 후에 함수가 실행됩니다.
내 문제 세부 사항 : save 함수가 호출되면 서버에 변경된 데이터를 보내기 위해 3 회의 비동기 webapi 호출이 수행됩니다. 그 후에 예를 들어 인쇄 및 로그하는 함수를 호출해야하며 save 명령이 성공했는지 확인해야합니다.
이것이 현재 해결 방법입니다. 그러나 그것은 아주 좋지 않은 것 같습니다. 때로 카운터 값이 올바르지 않습니다.
function save() {
callwebapi1(parameters, function (dataOnSuccess) { counter = counter - 1; canMethodBeExecuted(); });
callwebapi2(parameters, function (dataOnSuccess) { counter = counter - 1; canMethodBeExecuted(); });
callwebapi3(parameters, function (dataOnSuccess) { counter = counter - 1; canMethodBeExecuted(); });
}
function canMethodBeExecuted() {
if (counter < 0) {
counter = 3;
functionToExecuteAfterSaveIsFinished();
}
}
위와 같은 더 좋은 해결책이 있습니까? AngularJS와 이연
'$의 q.all'이 솔루션입니다. 문서를 참조하십시오. – Chandermani