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
368

Mon objectif est de définir someVar 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 console.log(someVar), 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 ?

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 } 

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
    À 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!