Rumah >hujung hadapan web >tutorial js >Synchronous vs. Asynchronous dalam Node.js: Bagaimanakah Pertanyaan Pangkalan Data Berbeza?
Memahami Pengaturcaraan Asynchronous dan Synchronous dalam Node.js
Semasa meneroka tapak web NodeBeginner, anda terjumpa dua coretan kod berbeza yang melaksanakan pertanyaan pangkalan data . Walaupun matlamatnya jelas, perbezaan antara pengaturcaraan segerak dan tak segerak masih sukar difahami.
Pengaturcaraan Segerak:
Dalam coretan kod pertama:
var result = database.query("SELECT * FROM hugetable"); console.log("Hello World");
Kod ini beroperasi secara serentak. Program berhenti di baris pertama, menunggu penyelesaian pertanyaan. Akibatnya, baris seterusnya, yang mencetak "Hello World", hanya boleh dilaksanakan selepas pertanyaan selesai.
Pengaturcaraan Asynchronous:
Sebaliknya, coretan kod kedua:
database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World");
Menggunakan pengaturcaraan tak segerak. Di sini, mesej "Hello World" dicetak serta-merta, manakala pelaksanaan pertanyaan berjalan serentak. Fungsi panggil balik menerima keputusan pertanyaan setelah selesai.
Perbezaan Utama:
Perbezaan kritikal terletak pada tingkah laku menyekat kod segerak. Pengaturcaraan segerak menghentikan pelaksanaan kod lain sehingga pertanyaan diproses, manakala pengaturcaraan tak segerak membenarkan pelaksanaan serentak tugas lain sambil menunggu keputusan pertanyaan.
Aliran Pelaksanaan:
Melaksanakan pertama, coretan kod segerak akan terhasil dalam:
Query finished Next line
Sebaliknya, coretan kod tak segerak akan mengeluarkan:
Next line Query finished
Menggambarkan sifat tidak menyekat pengaturcaraan tak segerak.
Asynchronicity Didorong Peristiwa dalam Node.js:
Walaupun berbenang tunggal, Node.js mendayakan operasi tak segerak kerana seni bina dipacu peristiwanya. Tugas seperti operasi sistem fail dikendalikan dalam proses berasingan. Benang Nod utama menerima pemberitahuan tentang operasi ini, membenarkannya bertindak balas dengan sewajarnya tanpa menyekat pelaksanaan tugas lain.
Atas ialah kandungan terperinci Synchronous vs. Asynchronous dalam Node.js: Bagaimanakah Pertanyaan Pangkalan Data Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!