그 안에 약속이있는 "끝이없는"while-loop가 필요합니다. 여기에 몇 가지 예제 코드입니다 : 오류가 발생하는 것을 제외하고 약속과 함께 비동기식 무한 루프를 갖는 방법
let noErrorsOccured = true
while (noErrorsOccured){
someAsyncFunction().then(() => {
doSomething();
}).catch((error) => {
console.log("Error: " + error);
noErrorsOccured = false;
});
}
function someAsyncFunction() {
return new Promise ((resolve, reject) => {
setTimeout(() => {
const exampleBool = doSomeCheckup();
if (exampleBool){
resolve();
} else {
reject("Checkup failed");
}
}, 3000);
});
}
그래서이 동안 루프가 무한 실행해야는 다음 동안 루프를 중지해야합니다. 이것을 어떻게 할 수 있습니까?
나는 당신은 내가 무엇을 의미하는 감사
약속 반응 (전화를 충족 또는 거부 핸들러)가 그들이 완료 실행되는 일으키는 스레드 후 비동기 적으로 실행됩니다. 첫 번째 while 루프는 무한 ** 차단 ** 루프이므로 제한 시간 초과 콜백이 발생하지 않으므로 결코 확정되지 않는 무한한 약속이 생성됩니다. D _Possibly_ 이전 약속 이후 3 초를 기다리는 제한 시간 타이머 또는 간격 타이머를 원합니다. 비동기 검사를 위해 생성 된 검사는 다른 검사를 실행하기 전에 해결됩니까? – traktor53
문제는 내가 내 약속을 해결하는 데 얼마나 오래 걸리는지 모르겠다. 필자의 예를 명확히하기 위해'setTimeout()'만 사용했다. 하지만 Felix Kling의 솔루션은 완벽하게 작동하므로 다른 솔루션은 필요 없지만 어쨌든 감사합니다. – C4rmond4i