使用Async/Await for MySQL 同步Node.js 結果
在Node.js 中,處理非同步操作可能具有挑戰性,尤其是當您在繼續之前需要同步結果。使用 async/await 關鍵字是實現此目的的便捷方法。
在提供的程式碼片段中,您的目標是從四個單獨的查詢中檢索結果並將它們附加到連接的字串中。然而,傳統的基於回調的方法提出了一個挑戰,因為變數保持空白,因為查詢下面的程式碼首先執行。
為了克服這個問題,Node.js 版本 8 引入了本機 util.promisify() 函數。此函數允許您將基於回調的函數轉換為基於承諾的函數。透過利用 util.promisify() 和 Node mysql 模組,您可以編寫以下程式碼:
// 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();
此程式碼將並發執行查詢並等待結果可用,然後再繼續。每個查詢中的行將被追加到追加的文字字串中,然後您可以使用該字串進行進一步處理。
以上是Async/Await 如何同步 Node.js MySQL 查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!