Maison >base de données >tutoriel mysql >Comment Async/Await peut-il synchroniser les résultats des requêtes MySQL Node.js ?
Synchronisation des résultats Node.js avec Async/Await pour MySQL
Dans Node.js, la gestion des opérations asynchrones peut être difficile, surtout lorsque vous devez synchroniser les résultats avant de continuer. L'utilisation des mots-clés async/await est une approche pratique pour y parvenir.
Dans l'extrait de code fourni, vous souhaitez récupérer les résultats de quatre requêtes distinctes et les ajouter à une chaîne concaténée. Cependant, l'approche conventionnelle basée sur le rappel pose un défi car les variables restent vides puisque le code situé sous les requêtes s'exécute en premier.
Pour surmonter ce problème, la version 8 de Node.js introduit la fonction native util.promisify() . Cette fonction vous permet de convertir des fonctions basées sur des rappels en fonctions basées sur des promesses. En tirant parti de util.promisify() et du module node mysql, vous pouvez écrire le code suivant :
// Import required modules const mysql = require('mysql'); const util = require('util'); // Create a MySQL connection const conn = mysql.createConnection({/* connection parameters */}); // Promisify the query method using util.promisify(). // Remember to use .bind() to maintain the correct this context. const query = util.promisify(conn.query).bind(conn); // Execute queries concurrently using async/await const main = async () => { try { const rows1 = await query(/* query string */); const rows2 = await query(/* query string */); const rows3 = await query(/* query string */); const rows4 = await query(/* query string */); // Append the results to a single string let appendedText = `${rows1} ${rows2} ${rows3} ${rows4}`; // Use the appendedText as needed } catch (err) { // Handle errors } finally { // Close the connection conn.end(); } }; // Start the process main();
Ce code exécutera les requêtes simultanément et attendra que les résultats soient disponibles avant de continuer. Les lignes de chaque requête seront ajoutées à la chaîne appendedText, que vous pourrez ensuite utiliser pour un traitement ultérieur.
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!