ホームページ >ウェブフロントエンド >jsチュートリアル >非同期関数が完了するまで実行を適切に一時停止するにはどうすればよいですか?
複数の非同期関数を使用する場合、多くの場合、1 つの関数が完了するまで待ってから別の関数を実行する必要があります。ソリューションを調べて、より洗練されたアプローチを検討してみましょう。
提供されたソリューションは、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 中国語 Web サイトの他の関連記事を参照してください。