Programmation asynchrone dans Node.js : utiliser des promesses pour gérer les fonctions MySQL
Node.js adopte la programmation asynchrone, nécessitant une approche différente pour renvoyer valeurs des fonctions. Pour s'adapter à ce modèle, cet article explique comment utiliser les promesses pour gérer les valeurs de retour MySQL dans Node.js.
Les promesses dans Node.js
Les promesses sont natives de JavaScript et fournit un moyen standardisé de gérer les opérations asynchrones. Ils permettent la création de « promesses » qui peuvent représenter le résultat éventuel d'une opération asynchrone (par exemple, une requête de base de données).
Adapter une fonction MySQL pour renvoyer une promesse
Considérez la fonction MySQL suivante tentant de renvoyer une valeur :
function getLastRecord(name) { // Code for query execution goes here } var rows = getLastRecord('name_record'); console.log(rows); // Won't work due to asynchronous nature
Pour que cela fonctionne, nous devons convertir la fonction en une fonction basée sur la promesse :
function getLastRecord(name) { return new Promise((resolve, reject) => { // Code for query execution goes here if (err) { return reject(err); } resolve(rows); }); }
Gestion de la valeur renvoyée
Avec la fonction renvoyant une promesse, vous pouvez désormais enchaîner les opérations pour gérer le résultat :
getLastRecord('name_record').then((rows) => { // Now you have your rows, you can see if there are <20 of them }).catch((err) => { // Handle errors here });
Utilisation alternative
Si vous souhaitez vérifier immédiatement si la valeur renvoyée est supérieure à 20, vous pouvez utiliser :
if (await getLastRecord() > 20) { console.log("action"); }
Remarque : Ce code repose sur la version Node.js 8 ou version ultérieure pour la prise en charge asynchrone/attente.
Conclusion
Les promesses fournissent un moyen structuré et lisible de gérer les opérations asynchrones dans Node.js. En tirant parti des promesses, vous pouvez enchaîner les opérations et gérer les résultats réussis et infructueux de manière cohérente.
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!