Menyegerakkan Keputusan Node.js dengan Async/Await for MySQL
Dalam Node.js, pengendalian operasi tak segerak boleh menjadi mencabar, terutamanya apabila anda perlu menyegerakkan keputusan sebelum meneruskan. Menggunakan kata kunci async/menunggu ialah pendekatan yang mudah untuk mencapainya.
Dalam coretan kod yang disediakan, anda menyasarkan untuk mendapatkan semula hasil daripada empat pertanyaan berasingan dan menambahkannya pada rentetan bercantum. Walau bagaimanapun, pendekatan berasaskan panggil balik konvensional menimbulkan cabaran kerana pembolehubah kekal kosong memandangkan kod di bawah pertanyaan dijalankan dahulu.
Untuk mengatasi isu ini, Node.js versi 8 memperkenalkan fungsi util.promisify() asli . Fungsi ini membolehkan anda menukar fungsi berasaskan panggilan balik kepada yang berasaskan janji. Dengan memanfaatkan util.promisify() dan modul mysql nod, anda boleh menulis kod berikut:
// Import required modules const mysql = require('mysql'); const util = require('util'); // Create a MySQL connection const conn = mysql.createConnection({/* connection parameters */}); // Promisify the query method using util.promisify(). // Remember to use .bind() to maintain the correct this context. const query = util.promisify(conn.query).bind(conn); // Execute queries concurrently using async/await const main = async () => { try { const rows1 = await query(/* query string */); const rows2 = await query(/* query string */); const rows3 = await query(/* query string */); const rows4 = await query(/* query string */); // Append the results to a single string let appendedText = `${rows1} ${rows2} ${rows3} ${rows4}`; // Use the appendedText as needed } catch (err) { // Handle errors } finally { // Close the connection conn.end(); } }; // Start the process main();
Kod ini akan melaksanakan pertanyaan secara serentak dan menunggu keputusan tersedia sebelum meneruskan. Baris daripada setiap pertanyaan akan dilampirkan pada rentetan AppendedText, yang kemudiannya boleh anda gunakan untuk pemprosesan selanjutnya.
Atas ialah kandungan terperinci Bagaimanakah Async/Await Boleh Menyegerakkan Keputusan Pertanyaan MySQL Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!