Pengaturcaraan Asynchronous dalam Node.js: Menggunakan Janji untuk Mengendalikan Fungsi MySQL
Node.js merangkumi pengaturcaraan tak segerak, memerlukan pendekatan berbeza untuk kembali nilai daripada fungsi. Untuk menyesuaikan diri dengan corak ini, artikel ini meneroka cara menggunakan Promises untuk mengurus nilai pulangan MySQL dalam Node.js.
Promises dalam Node.js
Promises berasal dari JavaScript dan menyediakan cara piawai untuk mengendalikan operasi tak segerak. Ia membolehkan penciptaan "janji" yang boleh mewakili hasil akhirnya operasi tak segerak (mis., pertanyaan pangkalan data).
Menyesuaikan Fungsi MySQL untuk Mengembalikan Janji
Pertimbangkan fungsi MySQL berikut yang cuba mengembalikan nilai:
function getLastRecord(name) { // Code for query execution goes here } var rows = getLastRecord('name_record'); console.log(rows); // Won't work due to asynchronous nature
Untuk membuat ini berfungsi, kita perlu menukar fungsi tersebut kepada fungsi berasaskan Promise:
function getLastRecord(name) { return new Promise((resolve, reject) => { // Code for query execution goes here if (err) { return reject(err); } resolve(rows); }); }
Mengendalikan Nilai yang Dipulangkan
Dengan fungsi mengembalikan Janji, anda kini boleh merangkaikan operasi untuk mengendalikan keputusan:
getLastRecord('name_record').then((rows) => { // Now you have your rows, you can see if there are <20 of them }).catch((err) => { // Handle errors here });
Penggunaan Ganti
Jika anda ingin segera menyemak sama ada nilai yang dikembalikan lebih besar daripada 20, anda boleh menggunakan:
if (await getLastRecord() > 20) { console.log("action"); }
Nota: Kod ini bergantung pada versi Node.js 8 atau lebih baru untuk sokongan tak segerak/menunggu.
Kesimpulan
Janji menyediakan cara berstruktur dan boleh dibaca untuk mengurus operasi tak segerak dalam Node.js. Dengan memanfaatkan Janji, anda boleh merangkaikan operasi dan mengendalikan kedua-dua hasil yang berjaya dan tidak berjaya dengan cara yang konsisten.
Atas ialah kandungan terperinci Bagaimanakah Janji Boleh Memudahkan Pengendalian Fungsi MySQL dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!