Peringkat-peringkat gelung acara nodejs: 1. peringkat pemasa; 2. peringkat panggilan balik belum selesai; 4. peringkat tinjauan;
Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer DELL G3.
gelung peristiwa nodejs
Apabila Node.js bermula, gelung peristiwa akan dimulakan Setiap gelung peristiwa akan mengandungi enam peringkat kitaran, gelung masa nodejs dan penyemak imbas Peristiwa adalah berbeza sama sekali.
Nota: Setiap kotak dalam gambar dipanggil fasa kitaran latihan, dan 6 fasa ini ialah kitaran peristiwa.
Ringkasan fasa
-
pemasa (pemasa): Fasa ini melaksanakan setTimeout tersebut oleh setTimeout () dan setInterval() fungsi panggil balik dijadualkan.
-
panggil balik belum selesai (panggilan balik I/O): Fasa ini akan melaksanakan hampir semua fungsi panggil balik, kecuali tutup panggil balik (tutup panggil balik) dan yang oleh Panggilan balik dijadualkan oleh pemasa dan setImmediate().
setImmediate adalah lebih kurang sama dengan setTimeout(panggilan balik, 0)
-
melahu (melahu), sediakan: Peringkat ini hanya digunakan secara dalaman.
-
tinjauan pendapat: Dapatkan semula acara I/O baharu; Nod akan disekat pada peringkat ini apabila sesuai.
-
semak: Panggilan balik yang ditetapkan oleh setImmediate() akan dipanggil pada peringkat ini.
-
tutup panggil balik: Panggilan balik seperti socket.on(‘close’,…) dipanggil pada peringkat ini.
Di antara setiap larian gelung acara, Node.js menyemak untuk melihat sama ada ia sedang menunggu I/O tak segerak atau pemasa dan dimatikan secara automatik jika tidak.
Jika gelung acara memasuki fasa tinjauan pendapat dan kod tidak menetapkan pemasa, perkara berikut akan berlaku:
- Jika baris gilir tinjauan pendapat tidak kosong, gelung acara akan dilaksanakan baris gilir masuk secara serentak sehingga baris gilir kosong atau panggilan balik yang dilaksanakan mencapai had sistem
- Jika baris gilir undian kosong, perkara berikut akan berlaku:
- Jika kod telah ditetapkan dengan panggilan balik; oleh setImmediate() , gelung acara akan memasuki peringkat tinjauan keputusan ke peringkat semakan, dan melaksanakan baris gilir dalam peringkat semakan (baris gilir dalam peringkat semakan ditetapkan oleh setImmediate).
- Jika kod tidak menetapkan setImmediate(panggilan balik), gelung acara akan disekat pada peringkat ini dan menunggu panggilan balik untuk menyertai baris gilir tinjauan pendapat, dan laksanakannya serta-merta sebaik sahaja ia tiba.
Jika gelung acara memasuki fasa tinjauan pendapat, dan kod menetapkan pemasa:
- Jika baris gilir tinjauan pendapat memasuki keadaan kosong (iaitu, fasa tinjauan pendapat ialah melahu), acara Gelung akan menyemak pemasa Jika satu atau lebih pemasa telah tiba, gelung acara akan memasuki fasa pemasa dalam tertib gelung dan melaksanakan baris gilir pemasa.
[Pembelajaran yang disyorkan: "tutorial nodejs"]
Atas ialah kandungan terperinci Apakah peringkat gelung peristiwa nodejs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!