」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Node.js 中使用 Promises 非同步處理 MySQL 回傳值?

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

發佈於2024-11-09
瀏覽:700

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

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

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

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

使用 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
  });
}

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

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,您可以引入一種更結構化和可讀的方法來處理非同步操作,從而確保程式碼庫更乾淨、更易於維護。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3