Dalam Node.js, operasi tak segerak digunakan secara meluas untuk mengendalikan interaksi pangkalan data dengan cekap. Sintaks async/wait, yang diperkenalkan dengan Node.js 8 dan seterusnya, menawarkan cara yang mudah untuk mengendalikan operasi sedemikian dalam cara seperti segerak.
Pertimbangkan senario di mana anda perlu melaksanakan berbilang pertanyaan terhadap pangkalan data MySQL dan tambahkan hasil mereka pada rentetan. Secara tradisinya, panggilan balik digunakan untuk mengendalikan pertanyaan tak segerak. Walau bagaimanapun, dengan async/menunggu, anda boleh memudahkan dan menyegerakkan proses ini.
Kod berikut menunjukkan cara menggunakan kata kunci async/menunggu dalam Node.js untuk melaksanakan berbilang pertanyaan MySQL dan menambahkan keputusannya:
const mysql = require('mysql'); // or use import if you use TS const util = require('util'); const conn = mysql.createConnection({ yourHOST/USER/PW/DB }); // node native promisify const query = util.promisify(conn.query).bind(conn); (async () => { try { const rows1 = await query('select count(*) as count1 from file_managed'); const rows2 = await query('select count(*) as count2 from file_managed'); const rows3 = await query('select count(*) as count3 from file_managed'); const rows4 = await query('select count(*) as count4 from file_managed'); // append the results to a string const appendedText = `${rows1[0].count1} - ${rows2[0].count2} - ${rows3[0].count3} - ${rows4[0].count4}`; console.log(appendedText); } finally { conn.end(); } })();
Dalam kod ini, fungsi pertanyaan telah dibalut dengan util.promisify() untuk mengubah fungsi berasaskan panggil balik menjadi fungsi janji-kembali. Menggunakan sintaks async/menunggu, anda kemudian boleh melaksanakan berbilang pertanyaan secara berurutan. Hasil daripada setiap pertanyaan diberikan kepada pembolehubah dan rentetan terakhir yang dilampirkan dilog ke konsol.
Atas ialah kandungan terperinci Bagaimanakah Async/Await Boleh Memudahkan Berbilang Pertanyaan MySQL dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!