首頁  >  文章  >  資料庫  >  如何在 Node.js 中使用 Promises 非同步處理 MySQL 回傳值?

如何在 Node.js 中使用 Promises 非同步處理 MySQL 回傳值?

Barbara Streisand
Barbara Streisand原創
2024-10-26 16:33:02181瀏覽

How to Handle MySQL Return Values Asynchronously in Node.js with Promises?

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

從 Python 轉換到 Node.js,Node.js 的非同步特性。 Node.js 可能會帶來挑戰。考慮一個場景,您需要從 MySQL 函數傳回一個值,例如 getLastRecord(name)。

傳統上,Node.js 使用回調進行非同步操作。但是,為了處理 getLastRecord() 的非同步特性,我們將利用 Promise。

要使用Promise 實作函數:

function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    // Setup MySQL connection and query
    // ...

    connection.query(query_str, query_var, (err, rows, fields) => {
      if (err) {
        return reject(err); // Handle error
      }
      resolve(rows); // Resolve with results
    }); // Callback function
  });
}

要處理回傳值,您可以連結Promise 的.then() 和.catch() 回呼:

getLastRecord('name_record')
  .then((rows) => {
    // Handle returned rows here
    console.log(rows);
  })
  .catch((err) => {
    // Handle errors here
    console.log(err);
  });

您還可以實現條件檢查:

getLastRecord('name_record')
  .then((rows) => {
    if (rows.length > 20) {
      console.log('action');
    }
  });

透過在這種情況下採用Promise,您引入了更加結構化和可讀的方法來處理非同步操作,確保更乾淨和更可維護的程式碼庫。

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

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