프라미스 기반 작업의 재시도 패턴
프라미스는 JavaScript에서 비동기 작업을 처리하는 편리한 방법을 제공합니다. 하지만 때로는 여러 번 작업을 재시도하거나 특정 조건이 충족될 때까지 작업을 다시 시도해야 하는 경우도 있습니다.
1. Promise가 해결될 때까지 재시도
해결될 때까지 작업을 계속 재시도하려면 재시도 간격과 최대 재시도 횟수를 사용하세요. 이는 for 루프와 .catch() 체인을 사용하여 달성할 수 있습니다:
<code class="js">for (var i = 0; i < maxRetries; i++) { p = p.catch(attempt).catch(rejectDelay); }</code>
2. 조건이 충족될 때까지 재시도
결과에서 조건이 충족될 때까지 작업을 재시도하려면 .then() 체인을 사용하여 조건을 확인하고 .catch() 체인을 사용하여 실패를 처리합니다.
<code class="js">for (var i = 0; i < maxRetries; i++) { p = p.catch(attempt).then(test); }</code>
3. 메모리 효율적인 동적 재시도 패턴
무제한 재시도 및 지정된 지연이 포함된 동적 재시도 메커니즘의 경우 .catch() 체인 접근 방식을 사용합니다.
<code class="js">var p = Promise.reject(); while (true) { p = p.catch(attempt).catch(rejectDelay); // Break out of the loop if the condition is met. if (conditionMet) break; }</code>
참고 :
위 내용은 JavaScript의 약속 기반 작업에 대한 다양한 재시도 패턴은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!