"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-09
Parcourir:874

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. Imaginez 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 enchaîner les 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 Promises dans ce scénario, vous introduisez une approche plus structurée et plus lisible de la gestion des opérations asynchrones, garantissant une base de code plus propre et plus maintenable.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3