ホームページ >データベース >mysql チュートリアル >Async/Await は Node.js MySQL クエリ結果をどのように同期できますか?
MySQL の Async/Await と Node.js の結果を同期する
Node.js では、特に次の場合、非同期操作の処理が困難になることがあります。続行する前に結果を同期する必要があります。これを実現するには、async/await キーワードを使用するのが便利です。
提供されたコード スニペットでは、4 つの個別のクエリから結果を取得し、それらを連結された文字列に追加することを目的としています。ただし、従来のコールバックベースのアプローチでは、クエリの下のコードが最初に実行されるため変数が空白のままになるため、課題が生じます。
この問題を克服するために、Node.js バージョン 8 ではネイティブ util.promisify() 関数が導入されました。 。この関数を使用すると、コールバックベースの関数を Promise ベースの関数に変換できます。 util.promisify() とノードの 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();
このコードはクエリを同時に実行し、結果が利用可能になるまで待ってから続行します。各クエリの行は appendedText 文字列に追加され、その後の処理に使用できます。
以上がAsync/Await は Node.js MySQL クエリ結果をどのように同期できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。