Pengaturcaraan tak segerak membolehkan JavaScript melaksanakan tugas tanpa menyekat utas utama. Ini penting untuk tugas seperti panggilan API, operasi fail atau sebarang proses yang berjalan lama. Dalam pengekodan JavaScript tradisional, panggilan balik atau janji telah digunakan untuk mengendalikan operasi tak segerak ini.
Janji mewakili nilai yang mungkin tersedia sekarang, atau pada masa hadapan, atau tidak pernah. Mereka menyediakan alternatif yang lebih bersih kepada panggilan balik, membolehkan pembangun menulis kod yang lebih terurus. Walau bagaimanapun, pengendalian janji bersarang dalam boleh membawa kepada kod yang rumit dan sukar dibaca.
Fungsi Async memudahkan penulisan kod tak segerak. Fungsi async sentiasa mengembalikan janji, membenarkan pembangun menulis kod yang kelihatan segerak, menggunakan kata kunci tunggu untuk menjeda pelaksanaan sehingga janji diselesaikan.
Untuk mencipta fungsi async, hanya gunakan kata kunci async sebelum pengisytiharan fungsi. Contohnya:
async function fetchData() { // Your code here }
Fungsi Async mengembalikan janji, yang bermaksud pemanggil boleh mengendalikannya dengan .then() dan .catch(). Jika fungsi async melemparkan ralat, janji itu ditolak.
Setiap fungsi async mengembalikan janji secara automatik. Jika nilai bukan janji dikembalikan, ia dibalut dengan janji.
Kata kunci tunggu hanya boleh digunakan dalam fungsi async. Ia menjeda pelaksanaan fungsi async sehingga janji diselesaikan atau ditolak.
async function getData() { const data = await fetch('https://api.example.com/data'); const json = await data.json(); console.log(json); }
Anda boleh merangkaikan berbilang panggilan tak segerak menggunakan await, menjadikan kod lebih bersih dan lebih mudah difahami.
Apabila berurusan dengan pelbagai janji, Promise.all() boleh digunakan bersama-sama dengan menunggu untuk menunggu semua janji diselesaikan.
async function fetchAllData() { const [data1, data2] = await Promise.all([fetch(url1), fetch(url2)]); // Process data1 and data2 }
Untuk mengendalikan ralat dalam fungsi async, bungkus panggilan menunggu dalam blok cuba/tangkap:
async function fetchData() { try { const response = await fetch('https://api.example.com/data'); const data = await response.json(); } catch (error) { console.error('Error fetching data:', error); } }
Anda juga boleh melampirkan kaedah .catch() pada panggilan fungsi async untuk mengendalikan ralat.
Sentiasa mengendalikan kemungkinan ralat dan sediakan mekanisme sandaran untuk memastikan aplikasi anda kekal teguh dan mesra pengguna.
Walaupun kedua-dua promise dan async/wait boleh mencapai hasil yang sama, async/wait selalunya menghasilkan kod yang lebih bersih dan lebih mudah dibaca.
Dalam kebanyakan senario, perbezaan prestasi adalah diabaikan. Walau bagaimanapun, penggunaan async/wait boleh membawa kepada kod yang lebih jelas, mengurangkan kemungkinan ralat.
Gunakan async/tunggu untuk kod yang memerlukan pelaksanaan janji yang berurutan. Gunakan janji apabila anda perlu melaksanakan berbilang operasi tak segerak secara serentak.
Apakah async/menunggu?
Bagaimana anda mengendalikan ralat dalam fungsi async?
Bolehkah anda terangkan perbezaan antara async/wait dan promises?
Gunakan contoh yang jelas, dan jika boleh, tunjukkan cara kod berkelakuan berbeza dengan dan tanpa async/menunggu.
Bincangkan cara anda melaksanakan async/menunggu dalam projek anda, menyerlahkan cabaran yang dihadapi dan cara anda mengatasinya.
Menguasai async/menunggu adalah penting untuk mana-mana pembangun JavaScript. Dengan memahami konsep yang dibincangkan dalam panduan ini, anda boleh menulis kod tak segerak yang lebih bersih, lebih cekap, menangani ralat dengan baik dan menyediakan diri anda untuk temu duga teknikal.
Teruskan mengasah kemahiran anda dan menggunakan teknik ini dalam senario dunia sebenar untuk menjadi pembangun JavaScript yang mahir. Selamat mengekod!
Atas ialah kandungan terperinci Menguasai Async/Await dalam JavaScript: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!