Maison  >  Article  >  base de données  >  Comment les promesses peuvent-elles être utilisées pour gérer les résultats MySQL asynchrones dans Node.js ?

Comment les promesses peuvent-elles être utilisées pour gérer les résultats MySQL asynchrones dans Node.js ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 03:43:03580parcourir

How can Promises be Used to Handle Asynchronous MySQL Results in Node.js?

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

La nature asynchrone de Node.js pose des défis aux développeurs habitués à la programmation synchrone. Cela peut être illustré avec une fonction telle que getLastRecord qui récupère les données d'une fonction MySQL.

Lorsqu'ils tentent de renvoyer une valeur à partir de getLastRecord, les développeurs peuvent rencontrer des problèmes en raison de la nature asynchrone du nœud. Voici comment résoudre ce problème à l'aide des promesses :

<code class="javascript">function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    const connection = getMySQL_connection();
    const query_str =
      "SELECT name, " +
      "FROM records " +   
      "WHERE (name = ?) " +
      "LIMIT 1 ";
    const query_var = [name];

    connection.query(query_str, query_var, (err, rows, fields) => {
      if (err) {
        return reject(err);
      }
      resolve(rows);
    });
  });
}</code>

Pour gérer la valeur renvoyée, vous pouvez utiliser then et intercepter les rappels :

<code class="javascript">getLastRecord('name_record').then(function(rows) {
  // Processing of rows goes here
}).catch((err) => { throw err; });</code>

Les promesses vous permettent d'éviter l'imbrication des rappels et d'améliorer le code. lisibilité. Ils deviennent particulièrement utiles lorsqu'ils sont combinés avec Promise.all et des accumulateurs comme Array.prototype.reduce.

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