Maison >base de données >tutoriel mysql >Comment gérer les valeurs de retour MySQL de manière asynchrone dans Node.js avec des promesses ?

Comment gérer les valeurs de retour MySQL de manière asynchrone dans Node.js avec des promesses ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 16:33:02275parcourir

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

Tirer parti des promesses pour traiter les valeurs de retour MySQL dans Node.js

Lors de la transition de Python vers Node.js, la nature asynchrone de Node. js peut présenter des défis. Imaginons un scénario dans lequel vous devez renvoyer une valeur à partir d'une fonction MySQL, telle que getLastRecord(name).

Traditionnellement, Node.js utilise des rappels pour les opérations asynchrones. Cependant, pour gérer la nature asynchrone de getLastRecord(), nous exploiterons les promesses.

Pour implémenter la fonction à l'aide d'une promesse :

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

Pour gérer la valeur renvoyée, vous pouvez chaîner Rappels .then() et .catch() à la promesse :

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

Vous pouvez également implémenter la vérification conditionnelle :

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

En adoptant les promesses dans ce scénario, vous introduisez un approche plus structurée et lisible de la gestion des opérations asynchrones, garantissant une base de code plus propre et plus maintenable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn