Gelung acara ialah nadi seni bina tak segerak Node.js. Ia adalah mekanisme yang membolehkan Node.js melakukan operasi I/O tanpa sekatan, walaupun JavaScript adalah satu-benang. Gelung acara sentiasa menyemak baris gilir acara dan memproses acara, membolehkan Node.js mengendalikan berbilang tugas dengan cekap.
Gelung acara beroperasi dalam kitaran yang dikenali sebagai "kutu". Setiap tanda mewakili satu laluan melalui fasa gelung peristiwa. Semasa setiap tanda, gelung peristiwa memproses peristiwa dalam fasa.
Gelung acara Node.js terdiri daripada enam fasa utama:
Memahami Setiap Fasa gelung Acara
Apa yang berlaku:
Fasa ini melaksanakan panggilan balik yang dijadualkan oleh setTimeout() dan setInterval().
Butiran:
Panggilan balik pemasa dilaksanakan sebaik sahaja masa yang dijadualkan telah berlalu. Walau bagaimanapun, masa pelaksanaan sebenar mungkin tertunda jika fasa sebelumnya mengambil masa yang lama untuk disiapkan.
Apa yang berlaku:
Melaksanakan panggilan balik I/O yang ditangguhkan ke lelaran gelung seterusnya.
Butiran:
Fasa ini mengendalikan panggilan balik untuk beberapa operasi sistem seperti ralat TCP. Panggilan balik ini bukan sebahagian daripada fasa pemasa kerana ia tidak dijadualkan menggunakan setTimeout atau setInterval.
Apa yang berlaku:
Penggunaan dalaman sahaja.
Butiran:
Fasa ini digunakan secara dalaman oleh Node.js untuk menyediakan fasa tinjauan pendapat yang akan datang.
Apa yang berlaku:
Mendapatkan semula peristiwa I/O baharu; melaksanakan panggilan balik berkaitan I/O (hampir semua kecuali panggilan balik tertutup, pemasa dan setImmediate()); akan menyekat di sini apabila sesuai.
Butiran:
Ini adalah fasa yang paling penting. Di sini, gelung acara akan mengambil acara baharu daripada baris gilir acara dan melaksanakan panggilan balik mereka. Jika tiada acara untuk dikendalikan, ia akan menyekat dan menunggu acara I/O.
Apa yang berlaku:
Melaksanakan panggilan balik setImmediate().
Butiran:
Panggilan balik yang dijadualkan dengan setImmediate() dilaksanakan di sini. Ini serupa dengan setTimeout() tetapi ia menjamin panggilan balik akan dilaksanakan serta-merta selepas fasa tinjauan pendapat selesai.
Apa yang berlaku:
Melaksanakan panggilan balik tutup (cth., socket.on('close', ...)).
Butiran:
Fasa ini mengendalikan penutupan semua permintaan yang perlu dibersihkan. Contohnya, penutupan pelayan HTTP atau deskriptor fail.
Memahami gelung peristiwa Node.js dan fasanya adalah penting untuk menulis aplikasi yang cekap dan tidak menyekat. Setiap fasa mempunyai peranan tertentu dan mengetahui cara ia berinteraksi membantu dalam mengoptimumkan prestasi dan menyahpepijat kod tak segerak.
Atas ialah kandungan terperinci Fasa Gelung Peristiwa Nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!