Apakah itu Gelung Acara JavaScript?
Dalam JavaScript, gelung peristiwa ialah mekanisme yang mengawal pelaksanaan kod, peristiwa atau mesej menggunakan I/O tidak menyekat. Ini menyediakan cara untuk operasi tidak menyekat, atau tak segerak, dalam JavaScript.
1. Berbenang Tunggal
JavaScript adalah satu benang, yang bermaksud ia melaksanakan satu tugas pada satu masa. Oleh itu, satu urutan, satu urutan yang JavaScript dilaksanakan ialah apa yang dipanggil "benang utama.
2.Timbunan Panggilan
Ia ialah struktur data di mana JavaScript menjejaki panggilan fungsi. Panggilan fungsi ditolak ke tindanan. Apabila ia kembali, ia dikeluarkan. Apabila ia kosong, JavaScript bersedia untuk memproses perkara seterusnya. Ia juga biasanya dirujuk sebagai "benang utama".
3.Timbunan
Di sinilah JavaScript menyimpan objek dan pembolehubah. Ia digunakan untuk peruntukan memori dinamik.
4.Barisan Acara
Barisan mesej atau tugasan yang sedang menunggu untuk dilaksanakan. Apabila tugasan ditambahkan ke dalam baris gilir, ia menunggu timbunan panggilan kosong untuk dilaksanakan.
5.Gelung Acara
Ia adalah sesuatu yang sentiasa memantau timbunan panggilan dan baris gilir acara. Jika tindanan panggilan kosong, ia kemudian mengalihkan tugasan daripada baris gilir acara ke dalam tindanan panggilan dan melaksanakannya.
Proses
Fungsi Panggilan Balik: Apabila operasi tak segerak selesai, fungsi panggil baliknya ditolak ke dalam baris gilir acara.
Pemeriksaan Gelung Peristiwa: Gelung Peristiwa kini menyemak tindanan panggilan serta baris gilir acara dalam susunan. Jika tindanan panggilan kosong, ia memilih tugas pertama daripada baris gilir acara dan menolaknya ke dalam tindanan panggilan untuk menjalankannya.
console.log('Start'); setTimeout(() => { console.log('Timeout 1'); }, 1000); setTimeout(() => { console.log('Timeout 2'); }, 500); console.log('End');
Perhatikan bahawa perkara berikut akan berlaku langkah demi langkah:
Ringkasan
Atas ialah kandungan terperinci Gelung Acara JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!