Maison > base de données > tutoriel mysql > le corps du texte

Comment convertir des opérations MySQL asynchrones en promesses dans Node.js ?

Susan Sarandon
Libérer: 2024-10-25 17:28:02
original
827 Les gens l'ont consulté

How to Convert Asynchronous MySQL Operations to Promises in Node.js?

Conversion des opérations MySQL asynchrones en promesses dans Node.js

La nature asynchrone de Node.js pose un défi pour les développeurs venant de Python. Pour résoudre ce problème, cet extrait de code tente d'encapsuler une opération MySQL dans une fonction asynchrone qui renvoie une valeur. Cependant, cette approche ne fonctionnera pas en raison de la nature asynchrone de Node.js.

Pour résoudre ce problème, l'opération doit être refactorisée pour renvoyer une promesse. En utilisant Bluebird, cela peut être réalisé comme suit :

<code class="javascript">function getLastRecord(name) {
  return new Promise((resolve, reject) => {
    // Establish a connection to MySQL
    const connection = getMySQL_connection();

    // Construct and execute the MySQL query
    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>
Copier après la connexion

Maintenant, vous pouvez gérer les lignes renvoyées comme vous le souhaitez :

<code class="javascript">getLastRecord('name_record').then((rows) => {
  // Access the rows and perform operations

  if (rows.length > 20) {
    console.log("action");
  }
}).catch((err) => {
  // Handle any errors
  setImmediate(() => { throw err; });
});</code>
Copier après la connexion

Cette approche garantit que l'opération est exécutée de manière asynchrone, tandis que vous permettant de gérer la valeur renvoyée de manière synchrone à l'aide de promesses.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!