Bagaimana untuk Memastikan Fungsi Asynchronous Melaksanakan dalam Urutan?

Linda Hamilton
Lepaskan: 2024-10-28 01:59:02
asal
849 orang telah melayarinya

How to Ensure Asynchronous Functions Execute in Sequence?

Cara Menjujukan Fungsi Tak Segerak

Tugas di tangan ialah memastikan satu fungsi menyelesaikan pelaksanaannya sebelum fungsi lain memulakan pelaksanaannya. Dalam kod yang disediakan, firstFunction() dipanggil dalam secondFunction(), tetapi pemanggil berhasrat untuk secondFunction() menunggu sehingga firstFunction() selesai sebelum meneruskan.

Pendekatan Fungsi Panggilan Balik

Satu teknik biasa untuk penjujukan kod tak segerak ialah menggunakan fungsi panggil balik. Berikut ialah versi kod yang disemak menggunakan panggilan balik:

<code class="javascript">function firstFunction(callback) {
  // Asynchronous operations go here.
  // When operations complete, invoke the callback function.
  callback();
}

function secondFunction() {
  firstFunction(() => {
    // Code that should execute after firstFunction() completes.
  });
}</code>
Salin selepas log masuk

Dalam contoh ini, firstFunction() mengambil fungsi panggil balik sebagai hujah. Apabila operasi tak segerak dalam firstFunction() selesai, ia memanggil fungsi panggil balik, dengan berkesan memberi isyarat kepada secondFunction() bahawa ia telah selesai.

Sintaks Fungsi Anak Panah

Pendekatan yang lebih baharu sedang menggunakan fungsi anak panah:

<code class="javascript">firstFunction(() => console.log('Done!'));</code>
Salin selepas log masuk

Sintaks ini memudahkan fungsi panggil balik dengan menggunakan fungsi anak panah (diwakili oleh =>) yang melaksanakan tindakan yang diingini apabila firstFunction() selesai.

Async/Await

Pendekatan yang lebih moden dan menyeluruh menggunakan async/wait. Kaedah ini melibatkan penentuan fungsi sebagai tak segerak dan menggunakan kata kunci await untuk menjeda pelaksanaan sehingga janji diselesaikan:

<code class="javascript">const firstFunction = async () => {
  // Asynchronous operations go here.
  return Promise.resolve(); // Return a promise that resolves when operations complete.
};

const secondFunction = async () => {
  await firstFunction();
  // Code that should execute after firstFunction() completes.
};</code>
Salin selepas log masuk

Dalam firstFunction(), return Promise.resolve() menunjukkan bahawa ia akan diselesaikan apabila operasi tak segerak selesai. Kata kunci await dalam secondFunction() memastikan bahawa ia akan menunggu janji firstFunction() diselesaikan sebelum meneruskan.

Satu kelebihan async/wait ialah kebolehbacaan kod yang dipertingkatkan dan pengendalian ralat yang lebih bersih berbanding dengan panggilan balik.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Fungsi Asynchronous Melaksanakan dalam Urutan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!