Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

148
Visualizações
Function return not being printed in console

I have this piece of code I'm writing in node.js, and I have a problem.

async function CheckearWhitelist(id) {
  const oracheck = ora("Checkeando en la whitelist...").start();
  con.connect(function (err) {
    if (err) {
      oracheck.fail(
        "Ha habido un fallo al conectarse a MySQL - Comprueba la conexión"
      );
    }
    con.query(
      `SELECT * FROM \`whatsapp\`.\`whitelist\` WHERE \`contacto\` = '${id}'`,
      function (err, result, fields) {
        if (err) {
          oracheck.fail("Fallo de MySQL");
        } else if (result == []) {
          oracheck.warn("Usuario no encontrado en la whitelist");
          return false
        } else {
          date = new Date();
          horas_fecha = date.getHours();
          minutos = date.getMinutes();
          hora = `${horas_fecha}.${minutos}`;

          hora_desb = result[0].hora_desbloqueo;
          if (hora_desb == 0) {
            oracheck.info("El contacto está en la whitelist indefinidamente");
            return true
          } else if (hora_desb <= hora) {
            oracheck.warn("Usuario no encontrado en la whitelist");
            return false
          } else {
            oracheck.succeed("Resultado Encontrado: ");
            return true
          }
        }
      }
    );
  });
}

CheckearWhitelist("34676654601@c.us").then((value) => console.log(value));

The thing is that if I make console.log(true/false) and not the return, it perfectly works. But when I return true/false, and make a console.log when calling the function, it doesn't work. I hope someone can help me. Thanks

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

The issue is that any return value from the asynchronous function you have there won't be returned back as you expect (it will be discarded or be used by the lib - but not your code)

You should instead return new Promise object at top level and resolve it inside the callback when you want to "return" values.

function CheckearWhitelist(id) {
  return new Promise((resolve, reject) => {
    const oracheck = ora("Checkeando en la whitelist...").start();
    con.connect(function(err) {
      if (err) {
        oracheck.fail(
          "Ha habido un fallo al conectarse a MySQL - Comprueba la conexión"
        );
      }
      con.query(
        `SELECT * FROM \`whatsapp\`.\`whitelist\` WHERE \`contacto\` = '${id}'`,
        function(err, result, fields) {
          if (err) {
            oracheck.fail("Fallo de MySQL");
          } else if (result == []) {
            oracheck.warn("Usuario no encontrado en la whitelist");
            resolve(false)
          } else {
            date = new Date();
            horas_fecha = date.getHours();
            minutos = date.getMinutes();
            hora = `${horas_fecha}.${minutos}`;

            hora_desb = result[0].hora_desbloqueo;
            if (hora_desb == 0) {
              oracheck.info("El contacto está en la whitelist indefinidamente");
              resolve(true)
            } else if (hora_desb <= hora) {
              oracheck.warn("Usuario no encontrado en la whitelist");
              resolve(false)
            } else {
              oracheck.succeed("Resultado Encontrado: ");
              resolve(true)
            }
          }
        }
      );
    });
  })
}

CheckearWhitelist("34676654601@c.us").then((value) => console.log(value));
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda