Rumah >hujung hadapan web >tutorial js >Cara Mengurus Kod Asynchronous dalam JavaScript: Menunggu Fungsi untuk Selesai Diterangkan
Dalam JavaScript, apabila anda mempunyai fungsi bersarang, anda mungkin menghadapi keperluan untuk menunggu satu fungsi selesai sebelum melaksanakan seterusnya. Mari kita terokai senario ini dan pendekatan berbeza untuk mengendalikannya dengan berkesan.
Sebelum membincangkan menunggu, adalah penting untuk memahami konsep fungsi segerak dan tak segerak. Fungsi segerak melaksanakan baris demi baris dan menyekat pelaksanaan kod selanjutnya sehingga ia selesai. Fungsi tak segerak, sebaliknya, membenarkan kod lain berjalan serentak semasa mereka melaksanakan tugasnya.
Satu pendekatan biasa untuk menunggu dalam JavaScript ialah menggunakan panggilan balik. Panggilan balik ialah fungsi yang diluluskan sebagai hujah kepada fungsi lain, untuk dilaksanakan selepas tugas tertentu selesai. Contohnya:
<code class="javascript">function firstFunction(callback) { // Do some work. callback(); // Call the provided callback function when finished. } function secondFunction() { firstFunction(function() { console.log('huzzah, I\'m done!'); }); }</code>
Dalam contoh ini, secondFunction memanggil firstFunction dan menyediakan fungsi panggil balik. Apabila firstFunction menyelesaikan tugasnya, ia memanggil fungsi panggil balik, membenarkan secondFunction meneruskan pelaksanaannya.
Dengan pengenalan ES6, fungsi anak panah boleh memudahkan sintaks panggil balik. Contohnya:
<code class="javascript">firstFunction(() => console.log('huzzah, I\'m done!'))</code>
Untuk mengendalikan tugas tak segerak, sintaks async/wait menyediakan pendekatan yang ringkas dan boleh dibaca. Fungsi Async boleh menjeda pelaksanaannya menggunakan kata kunci tunggu dan menyambung semula apabila operasi tak segerak selesai. Ini membolehkan pengekodan yang lebih bersih dan lebih berurutan:
<code class="javascript">const secondFunction = async () => { const result = await firstFunction() // Code that depends on firstFunction's result goes here. }</code>
Adalah penting untuk ambil perhatian bahawa menunggu untuk fungsi segerak tidak perlu, kerana ia menyekat pelaksanaan kod selanjutnya secara semula jadi. Walau bagaimanapun, menggunakan teknik seperti sibuk menunggu dengan setTimeout tidak disyorkan, kerana ia boleh menjadi tidak cekap dan memperkenalkan keadaan perlumbaan yang berpotensi.
Memilih pendekatan untuk menunggu fungsi bergantung pada konteks dan sifat operasi tak segerak. Untuk senario berasaskan panggilan balik yang mudah, panggilan balik berfungsi dengan berkesan. Untuk tugas asynchronous yang lebih kompleks, async/wait menyediakan pendekatan yang lebih diselaraskan dan moden. Memahami pilihan ini memberi kuasa kepada anda untuk mengurus kod tak segerak dengan cekap dan menulis aplikasi JavaScript yang boleh diselenggara dan berprestasi.
Atas ialah kandungan terperinci Cara Mengurus Kod Asynchronous dalam JavaScript: Menunggu Fungsi untuk Selesai Diterangkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!