Gelung Acara dan Gelung Sekatan Semasa
Konsep gelung sementara menyekat gelung peristiwa dalam Node.js timbul daripada sifat semula jadi seni bina dipacu peristiwa Node.
Gelung pelaksanaan teras Node sentiasa menyemak acara dalam baris gilir acaranya. Apabila acara tersedia, ia melaksanakan fungsi panggil balik yang berkaitan sambil menyekat semua acara lain.
Cara penyekatan berlaku:
Dalam contoh yang disediakan dalam soalan asal, gelung while berulang kali menyemak nilai buka. Memandangkan gelung peristiwa disekat oleh pelaksanaan gelung, ia tidak boleh memproses panggilan balik tamat masa yang dijadualkan dan mengemas kini pembolehubah terbuka.
Akibat penyekatan:
Sekatan ini menghalang kod daripada berkelakuan seperti yang diharapkan: mesej bijan terbuka tidak pernah dilog. Sebaliknya, gelung terus berputar selama-lamanya.
Penyelesaian:
Untuk mengelak daripada menyekat gelung peristiwa, seseorang harus menyusun semula kod untuk menggunakan pendekatan berasaskan peristiwa. Daripada menggunakan gelung sementara, seseorang itu harus mendaftarkan pendengar untuk acara terbuka dan melaksanakan kod yang diingini dalam pendengar itu.
Berikut ialah versi diubah suai kod yang menggunakan pendengar acara:
<code class="javascript">// Listen for the open event emitter.on('open', function() { // Code to execute when the open event occurs console.log('open sesame'); });</code>
Faedah menggunakan pendengar acara:
Atas ialah kandungan terperinci Mengapa Gelung Sementara Menyekat Gelung Peristiwa dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!