ホームページ  >  記事  >  データベース  >  Promise により Node.js での MySQL 関数の処理がどのように簡素化されるのでしょうか?

Promise により Node.js での MySQL 関数の処理がどのように簡素化されるのでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 13:36:30743ブラウズ

How Can Promises Simplify MySQL Function Handling in Node.js?

Node.js の非同期プログラミング: Promise を使用して MySQL 関数を処理する

Node.js は非同期プログラミングを採用しており、返すには別のアプローチが必要です関数からの値。このパターンに適応するために、この記事では Promise を利用して Node.js で MySQL の戻り値を管理する方法について説明します。

Node.js の Promises

Promise はネイティブです。 JavaScript を使用して、非同期操作を処理する標準化された方法を提供します。これらにより、非同期操作 (データベース クエリなど) の最終結果を表す「プロミス」の作成が可能になります。

プロミスを返すように MySQL 関数を適応させる

次の MySQL 関数が値を返そうとしているとします:

function getLastRecord(name) {
  // Code for query execution goes here
}

var rows = getLastRecord('name_record');

console.log(rows); // Won't work due to asynchronous nature

これを機能させるには、関数を Promise ベースの関数に変換する必要があります:

function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    // Code for query execution goes here

    if (err) {
      return reject(err);
    }
    resolve(rows);
  });
}

戻り値の処理

Promise を返す関数を使用すると、操作を連鎖させて結果を処理できるようになります:

getLastRecord('name_record').then((rows) => {
  // Now you have your rows, you can see if there are <20 of them
}).catch((err) => {
  // Handle errors here
});

代替使用法

戻り値が 20 より大きいかどうかをすぐに確認したい場合は、次を使用できます:

if (await getLastRecord() > 20) {
  console.log("action");
}

注: このコードは Node.js のバージョンに依存します。 async/await サポートには 8 以降が必要です。

結論

Promise は、Node.js で非同期操作を管理するための構造化された読みやすい方法を提供します。 Promise を活用することで、操作を連鎖させ、成功と失敗の両方の結果を一貫した方法で処理できます。

以上がPromise により Node.js での MySQL 関数の処理がどのように簡素化されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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