Cara Melaksanakan Fungsi Tidak Menyekat dengan Betul dalam Node.js
Walaupun sifatnya tidak segerak, Node.js tidak menyediakan cara yang mudah cara untuk melaksanakan kod tanpa menyekat. Fungsi yang dibalut dengan Promises, seperti yang anda lakukan dalam contoh anda, masih melaksanakan secara serentak dan menyekat urutan utama.
Memahami Model Pelaksanaan Node.js
Tidak seperti bahasa tak segerak yang sebenar, Node.js menjalankan kod JavaScript dalam gelung acara satu benang. Semua kod, termasuk fungsi pelaksana Promise, menyekat utas utama sehingga selesai. Oleh itu, jangkaan tingkah laku tidak menyekat dalam kod anda adalah tidak betul.
Mencapai Kod Tidak Sekat Sebenar
Untuk mencipta kod yang benar-benar tidak menyekat, anda mesti menggunakan teknik yang mengalih keluar tugas intensif daripada utas utama:
Contoh: Memperbaiki Anda Kod
Untuk mempamerkan tingkah laku tidak menyekat dalam kod anda, masukkan fungsi setTimeout(). Walau bagaimanapun, ini hanya mengubah masa pelaksanaan kod, bukan sifat menyekatnya:
function longRunningFunc(val, mod) { return new Promise((resolve, reject) => { setTimeout(() => { // Time-consuming loop resolve(sum) }, 10); }) }
Kesimpulan
Walaupun Janji berharga untuk mengendalikan tugas tak segerak, ia sahaja melakukannya tidak membuat fungsi tidak menyekat. Untuk mencapai tingkah laku tidak menyekat sebenar, pertimbangkan teknik yang digariskan di atas untuk melaksanakan kod di luar utas utama. Dengan memahami batasan model pelaksanaan Node.js, anda boleh membangunkan kod yang menggunakan keupayaan tak segeraknya dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Benar-benar Melaksanakan Fungsi Tidak Menyekat dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!