Apabila bekerja dengan fungsi tak segerak, adalah penting untuk memastikan satu fungsi selesai sebelum yang lain diteruskan. Dalam JavaScript, terdapat beberapa cara untuk mencapai penyegerakan ini.
Satu pendekatan yang dinyatakan ialah menggunakan pembolehubah boolean global untuk menunjukkan kesempurnaan fungsi. Walaupun berfungsi, kaedah ini boleh terdedah kepada konflik jika terdapat berbilang operasi tak segerak.
Penyelesaian yang lebih elegan melibatkan panggilan balik, membolehkan pemanggil menentukan fungsi untuk dilaksanakan sebaik sahaja operasi tak segerak selesai. Fungsi panggil balik menyediakan cara yang jelas dan ringkas untuk mengendalikan senario ini:
<code class="javascript">function firstFunction(_callback) { // Perform asynchronous work here... _callback(); } function secondFunction() { firstFunction(() => { console.log('First function completed'); }); }</code>
Untuk kod ringkas, pertimbangkan untuk menggunakan fungsi anak panah:
<code class="javascript">firstFunction(() => console.log('First function completed'));</code>
Sebagai alternatif, jika anda memerlukan kawalan yang lebih besar ke atas operasi tak segerak , pertimbangkan untuk menggunakan Janji atau async/menunggu. Promises menyediakan pendekatan yang lebih berstruktur, membolehkan anda merantai operasi dan mengendalikan berbilang panggilan tak segerak dengan cekap.
<code class="javascript">const firstFunctionPromise = () => { // Return a Promise object... }; secondFunction() .then(result => { console.log('First function completed using Promise'); }) .catch(error => { console.log('Error occurred: ' + error); });</code>
Untuk kebolehbacaan yang lebih baik dan kod ringkas, async/wait menawarkan sintaks yang lebih mudah:
<code class="javascript">const secondFunction = async () => { const result = await firstFunction(); console.log('First function completed using async/await'); };</code>
Akhirnya, pendekatan terbaik bergantung pada kerumitan dan keperluan kes penggunaan khusus anda. Dengan memilih kaedah penyegerakan yang sesuai, anda boleh memastikan pelaksanaan lancar dan boleh diramal bagi fungsi tak segerak anda.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Memastikan Fungsi Asynchronous Selesai dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!