여러 비동기 함수로 작업할 때 다른 함수를 실행하기 전에 한 함수가 끝날 때까지 기다려야 하는 경우가 많습니다. 솔루션을 검토하고 보다 우아한 접근 방식을 살펴보겠습니다.
제공된 솔루션은 setTimeout이 포함된 폴링 메커니즘을 사용하여 첫 번째 기능이 완료되었는지 지속적으로 확인합니다.
<code class="javascript">var isPaused = false; function firstFunction() { isPaused = true; // Do something isPaused = false; } function secondFunction() { firstFunction(); function waitForIt() { if (isPaused) { setTimeout(waitForIt, 100); } else { // Do something else } } }</code>
이 방법은 작동할 수 있지만 폴링에 의존하기 때문에 최적은 아닙니다.
콜백 함수:
일반적인 관행 콜백 함수를 사용하여 비동기 완료를 처리하는 것입니다.
<code class="javascript">function firstFunction(callback) { // Do asynchronous work callback(); } function secondFunction() { firstFunction(() => { console.log("huzzah, I'm done!"); }); }</code>
firstFunction이 완료되면 콜백 함수를 호출하여 secondFunction이 계속 실행될 수 있도록 합니다.
화살표 함수:
화살표 함수를 사용하면 이 접근 방식이 단순화됩니다.
<code class="javascript">firstFunction(() => console.log('huzzah, I'm done!'))</code>
Async/Await:
최신 JavaScript에서 async/await는 더 읽기 쉽고 실행을 일시 중지하는 효율적인 방법:
<code class="javascript">const secondFunction = async () => { const result = await firstFunction() // Do something else here after firstFunction completes }</code>
폴링을 사용하여 함수 완료를 기다릴 수 있지만 콜백 함수, 화살표 함수 및 async/await는 더욱 우아하고 성능이 뛰어난 솔루션을 제공합니다. 특정 요구 사항과 JavaScript 환경에 가장 적합한 접근 방식을 선택하세요.
위 내용은 비동기 함수가 완료될 때까지 실행을 우아하게 일시 중지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!