Gelung peristiwa ialah konsep teras dalam Node.js yang membolehkannya mengendalikan operasi tak segerak dengan cekap. Berikut ialah penjelasan ringkas tentang cara ia berfungsi:
Node.js beroperasi pada satu urutan. Ini bermakna ia hanya boleh melaksanakan satu keping kod pada satu masa. Walau bagaimanapun, Node.js direka bentuk untuk mengendalikan banyak operasi serentak tanpa memerlukan berbilang urutan.
Node.js menggunakan operasi I/O tidak menyekat. Apabila Node.js melaksanakan tugas seperti membaca fail, menyoal pangkalan data atau membuat permintaan rangkaian, ia tidak menunggu tugasan ini selesai sebelum beralih ke tugas seterusnya. Sebaliknya, ia terus melaksanakan kod lain semasa tugasan ini sedang diproses.
Gelung acara bertanggungjawab untuk mengurus pelaksanaan kod dan mengendalikan acara tak segerak. Ia sentiasa menyemak "baris gilir" tugas dan memutuskan tugasan yang mana untuk dilaksanakan. Berikut ialah pecahan langkah demi langkah:
Tugas tak segerak, setelah selesai, tolak panggilan baliknya ke baris gilir. Gelung acara memilih panggilan balik ini daripada baris gilir dan melaksanakannya mengikut tertib.
Selain daripada baris gilir utama, terdapat juga baris gilir microtask (atau baris gilir tanda seterusnya) di mana panggilan balik dijadualkan dengan pengendali process.nextTick() atau promises' .then() digilir. Tugasan mikro mempunyai keutamaan berbanding panggilan balik biasa, bermakna ia dilaksanakan selepas operasi semasa selesai tetapi sebelum gelung acara beralih ke fasa seterusnya.
Berikut ialah contoh mudah untuk menggambarkan cara gelung acara berfungsi:
const fs = require('fs'); console.log('Start'); fs.readFile('file.txt', (err, data) => { if (err) throw err; console.log('File read complete'); }); console.log('End');
Output:
Start End File read complete
Penjelasan:
Gelung peristiwa membolehkan Node.js mengendalikan banyak operasi serentak dengan cekap, walaupun berbenang tunggal, dengan mewakilkan operasi kepada sistem dan mengendalikan keputusannya secara tidak segerak.
Gelung Peristiwa mengatur pelaksanaan tugas, mengutamakan Baris Gilir Tugasan Mikro untuk memastikan janji dan operasi yang berkaitan diselesaikan dengan cepat sebelum beralih kepada tugas dalam Baris Gilir Tugas Utama (Tugas Makro).
Dinamik ini membolehkan JavaScript mengendalikan gelagat tak segerak yang kompleks dalam persekitaran satu benang.
Atas ialah kandungan terperinci Bagaimanakah gelung acara berfungsi dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!