Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

97
Views
Tener problemas para devolver una promesa y luego consumirla después de una llamada a la base de datos

Estoy aprendiendo Javascript y tengo una sección sobre Promesas. Así que decidí probar y convertir algunos de mis proyectos anteriores para usar Promises. Pero no puedo entenderlo. Leí muchas guías y navegué por este sitio, pero todavía no puedo entender por qué esto no funciona.

Esta es la función con la que estoy trabajando, tratando de hacer una llamada a la base de datos que devuelve una promesa, que luego se puede registrar o lo que sea.

 const getID = function (product) { let query = `select typeID from invTypes where UPPER(typeName) =UPPER('${product}')`; return new Promise((resolve, reject) => { resolve( DB.get(query, function (err, result) { if (err) { Bot.say(`Error looking up ${product}`); } else { console.log(result.typeID); //587 return result.typeID; } }) ); }); }; getID(product).then((data) => console.log(data)); //Database {}

Las salidas de la consola

 Database {} 587

entonces .then(data => console.log(data)) //Base de datos {} todavía está sucediendo antes de que se devuelva la promesa,

como puede ver, el otro registro anterior dentro de la función en realidad está iniciando sesión después de él.

¿Puede alguien ayudarme con esto? He estado en esta función durante horas, jaja. Creo que tengo algún tipo de malentendido fundamental que no estoy captando en mis videos de bootcamp ni en nada de lo que estoy leyendo.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En el código de promesa, usa resolve() en la función de devolución de llamada de la función asíncrona para devolver valores.

 const getID = function(product) { let query = `select typeID from invTypes where UPPER(typeName) =UPPER('${product}')`; return new Promise((resolve, reject) => { DB.get(query, function(err, result) { if (err) { Bot.say(`Error looking up ${product}`); reject(`Error looking up ${product}`); } else { console.log(result.typeID); //587 resolve(result.typeID); } }) }); };

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!