首頁 >資料庫 >mysql教程 >如何在 Node.js 中使用 Promise 處理非同步 MySQL 結果?

如何在 Node.js 中使用 Promise 處理非同步 MySQL 結果?

Linda Hamilton
Linda Hamilton原創
2024-10-27 03:43:03679瀏覽

How can Promises be Used to Handle Asynchronous MySQL Results in Node.js?

在Node.js 中使用Promise 處理MySQL 回傳值

Node.js 的非同步特性為習慣同步程式設計的開發人員帶來了挑戰。這可以透過像 getLastRecord 這樣從 MySQL 函數取得資料的函數來說明。

當嘗試從 getLastRecord 傳回值時,開發人員可能會因節點的非同步性質而遇到問題。以下是如何使用Promises 解決此問題:

<code class="javascript">function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    const connection = getMySQL_connection();
    const query_str =
      "SELECT name, " +
      "FROM records " +   
      "WHERE (name = ?) " +
      "LIMIT 1 ";
    const query_var = [name];

    connection.query(query_str, query_var, (err, rows, fields) => {
      if (err) {
        return reject(err);
      }
      resolve(rows);
    });
  });
}</code>

要處理返回值,您可以使用then 並捕獲回調:

<code class="javascript">getLastRecord('name_record').then(function(rows) {
  // Processing of rows goes here
}).catch((err) => { throw err; });</code>

Promises 允許您避免回調巢狀並改善程式碼可讀性。當與 Promise.all 和累加器(如 Array.prototype.reduce)結合使用時,它們變得特別有用。

以上是如何在 Node.js 中使用 Promise 處理非同步 MySQL 結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn