일반적인 시나리오에서는 실행 순서가 유지되는지 확인하기 위해 API 요청과 같은 일련의 Promise 호출을 반복하는 작업이 포함됩니다. . 블루버드는 promiseWhile 기능을 통해 솔루션을 제공합니다. 그러나 루프 내에서 logger.log(res) 호출 순서에 대한 우려가 있습니다.
promiseWhile을 사용하는 대신 다음 접근 방식을 고려하세요.
<code class="javascript">function fetchUserDetails(arr) { return arr.reduce(function(promise, email) { return promise.then(function() { return db.getUser(email).done(function(res) { logger.log(res); }); }); }, Promise.resolve()); }</code>
이 코드:
이메일 주소 배열을 사용하여 fetchUserDetails 함수를 호출합니다.
<code class="javascript">// Compose an array of email addresses const arrayOfEmailAddys = [...]; fetchUserDetails(arrayOfEmailAddys).then(function() { console.log('all done'); });</code>
이 접근 방식을 사용하면 재귀, 외부 카운터 및 복잡한 조건 기능이 필요하지 않으면서 원하는 logger.log(res) 호출 동기화를 유지합니다.
위 내용은 JavaScript에서 Promise를 반복할 때 동기 로깅을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!