Résoudre le problème de l'enfer des rappels lors de l'exportation d'une valeur dans une requête SQL
P粉014218124
P粉014218124 2023-09-04 21:09:38
0
1
459
<p>Mon objectif est de définir <code>someVar</code> sur 1 si ma requête SQL trouve un résultat. Le problème est que l'affectation est locale et lorsque j'essaie d'utiliser <code>console.log(someVar)</code>, le résultat est 1 à l'intérieur du bloc, mais 0 à l'extérieur du bloc. Existe-t-il un moyen d'exporter les valeurs en dehors du bloc ? </p> <pre class="brush:js;toolbar:false;">let someVar = 0; con.query(`SOME SQL QUERY`, (erreur, lignes) => { si (erreur) renvoie une erreur if (lignes.longueur > 0) { uneVar = 1 ; //console.log(someVar) -> Le résultat est 1 } }); con.end(); //console.log(someVar) -> Le résultat est 0 si (uneVar === 0) { //Un peu de code } </pre></p>
P粉014218124
P粉014218124

répondre à tous(1)
P粉545218185

Grâce à Fredrik, je l'ai réparé. J'ai fini par utiliser une promesse comme celle-ci

let promiseQuery = await new Promise((resolve, reject) => {
    con.query(`SOME SQL QUERY`, (error, results, fields) => {
        if (error) reject(error);
        resolve(results || {});
    })

})
const someVar = promiseQuery.length
if (someVar === 0) {
    // Some code
} else {
    // Some code
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal