ホームページ >データベース >mysql チュートリアル >Async/Await は Node.js MySQL クエリ結果をどのように同期できますか?

Async/Await は Node.js MySQL クエリ結果をどのように同期できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 05:58:13300ブラウズ

How Can Async/Await Synchronize Node.js MySQL Query Results?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。