Mari kita lihat apa itu operasi menyekat;
Saya mensimulasikan kaedah sleep() untuk menangguhkan pencetakan hello star selama 10 saat.
requestHandlers.js
Apabila meminta /mula, terdapat kelewatan selama 10 saat sebelum mencetak.
Apabila meminta/muat naik, ia tidak akan terjejas.
Jom buat percubaan:
Masukkan http://localhost:8888/start dalam bar alamat tetingkap penyemak imbas pertama, tetapi jangan bukanya lagi!
Masukkan http://localhost:8888/upload dalam bar alamat tetingkap penyemak imbas kedua Sekali lagi, jangan bukanya lagi.
Kami tekan Enter dalam tetingkap pertama ("/start"), dan kemudian cepat beralih ke tetingkap kedua ("/upload") dan tekan Enter.
Perhatian, apa yang berlaku:
URL/mula mengambil masa 10 saat untuk dimuatkan, yang kami jangkakan.
URL/muat naik juga mengambil masa 10 saat!
Ya, ia tidak mempunyai operasi yang serupa dengan sleep() dalam pengendali permintaan yang sepadan. Apakah masalahnya?
Sebabnya ialah start() mengandungi operasi menyekat. Secara kiasan, "ia menyekat semua kerja pemprosesan lain."
Node.js adalah satu-benang dan boleh memproses tugasan secara selari tanpa menambah urutan tambahan.
Ia melaksanakan operasi selari melalui gelung peristiwa Kita harus menggunakan ini sepenuhnya - elakkan operasi menyekat sebanyak mungkin dan sebaliknya menggunakan operasi bukan sekatan.
Dalam bahagian seterusnya kami akan memperkenalkan cara melaksanakan operasi tanpa sekatan.