Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

141
Vistas
El retorno de la función no se imprime en la consola

Tengo este fragmento de código que estoy escribiendo en node.js y tengo un problema.

 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));

El caso es que si hago console.log(true/false) y no el return, funciona perfectamente. Pero cuando devuelvo verdadero/falso y hago un archivo console.log al llamar a la función, no funciona. Espero que alguien pueda ayudarme. Gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El problema es que cualquier valor de retorno de la función asíncrona que tiene allí no se devolverá como esperaba (se descartará o será utilizado por lib, pero no su código)

En su lugar, debe devolver el nuevo objeto Promise en el nivel superior y resolverlo dentro de la devolución de llamada cuando desee "devolver" valores.

 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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda