나는 비동기 함수를 호출하는 for 루프를 가지고있다. 이 함수는 for 루프의 끝에서 콜백을 호출해야하지만 모든 비동기 함수가 결과를 반환 할 때만 필요합니다. 나는 이것을 시도했다 :콜백이 끝나기 전에 루프 종료를 위해
for(var i = 0; i < vaccinsCount; i++){
getVaccinAddress(i, address, provider, function(result){
if(result.success){
console.log("result:" + result.values);
vaccines.push(result.values);
} else {
callback({success: false, message: result.message});
}
});
}
callback({success: true, values: vaccines});
대신에 코드가 for 루프를 입력 한 다음 비동기 함수를 호출 한 다음 straigh를 빠져 나온다. 어떻게이 문제를 해결할 수 있을까요?
getVaccinAddress는 서버 호출을 수행하는 비동기 함수입니다. 내가 NodeJS를 사용하고
편집
이 때문에이 솔루션은 다음 블루 버드 사용하는 것입니다, 그러나 나는이 블루 버드 구현하는 방법에 대한 아무 생각이 없습니다. vaccines.length
이 vaccinsCount
for(var i = 0; i < vaccinsCount; i++) {
(function(i) {
getVaccinAddress(i, address, provider, function(result) {
if(result.success) {
console.log("result:" + result.values);
vaccines.push(result.values);
if (vaccines.length === vaccinsCount) {
// call `callback()` here
}
}
});
})(i);
}
검색을하고 내가 가진 – mplungjan
비동기 루프 구글과 I 내가 어떻게 작동하게 할 수 있는지 이해하지 못한다. –
코드가 불완전하면 getVaccinAddress 함수에 무엇이 있습니까? –