cari

Rumah  >  Soal Jawab  >  teks badan

Selesaikan masalah neraka panggil balik apabila mengeksport nilai dalam pertanyaan SQL

<p>Matlamat saya ialah untuk menetapkan <kod>someVar</code> kepada 1 jika pertanyaan SQL saya menemui hasil. Masalahnya ialah, tugasan adalah setempat, dan apabila saya cuba menggunakan <code>console.log(someVar)</code>, hasilnya ialah 1 di dalam blok, tetapi 0 di luar blok. Adakah terdapat cara untuk mengeksport nilai di luar blok? </p> <pre class="brush:js;toolbar:false;">let someVar = 0; con.query(`SOME SQL QUERY`, (ralat, baris) => { jika (kesilapan) membuang kesilapan jika (baris.panjang > 0) { someVar = 1; //console.log(someVar) -> } }); con.end(); //console.log(someVar) -> jika (someVar === 0) { //Beberapa kod } </pra></p>
P粉014218124P粉014218124453 hari yang lalu467

membalas semua(1)saya akan balas

  • P粉545218185

    P粉5452181852023-09-05 18:56:24

    Terima kasih kepada Fredrik, saya membetulkannya. Saya akhirnya menggunakan janji seperti berikut

    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
    }

    balas
    0
  • Batalbalas