«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как асинхронно обрабатывать возвращаемые значения MySQL в Node.js с помощью обещаний?

Как асинхронно обрабатывать возвращаемые значения MySQL в Node.js с помощью обещаний?

Опубликовано 9 ноября 2024 г.
Просматривать:975

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

Использование Promises для обработки возвращаемых значений MySQL в Node.js

При переходе от Python к Node.js асинхронная природа Node.js. 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() с обещанием:

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');
    }
  });

Применяя Promises в этом сценарии, вы вводите более структурированный и удобочитаемый подход к обработке асинхронных операций, обеспечивая более чистую и удобную в обслуживании кодовую базу.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3