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

91
Views
Función de espera JS con Promesa vacía

Tengo una pregunta, entiendo un poco cómo funcionan las promesas, pero me gustaría esperar a que finalice una función, incluso si no devuelve nada. Tengo un código similar pero no espera a que b termine antes de comenzar los pasos adicionales en a.

Por ejemplo, en este caso, quiero crear tablas en una base de datos sqlite, luego cargar datos y ejecutar algunas pruebas. Lo que pasa aquí es que está comenzando a ejecutar las pruebas antes de terminar de cargar los datos y las matrices creadas en el método loadData están vacías. Incluso preferiría no devolver esas matrices, sino esperar siempre a que se complete este proceso antes de ejecutar las pruebas.

 async function initialize(){ try{ console.log("Beginning connection"); db = await connectToDB(); console.log(`Database: ${db}`) db.serialize(function() { console.log("Creating tables") db.run(queries.__parent_company); db.run(queries.parent_company); db.run(queries.__sales_rep); db.run(queries.sales_rep); db.run(queries.advertiser); console.log("Tables created"); }); let response = await loadData(); console.log("Response", response) testData(); } catch(e){ throw e; } } function loadData() { return new Promise(async (resolve, reject) => { console.log("Beggning data insertion"); try{ let insertedAdvertisers = []; let insertedSales = []; let insertedCOmpanies = []; data.rows.forEach(async row => { let advertiser = await loadAdvertisers(row); let sale = await loadSalesRep(row); let company = await loadParentCompany(row); insertedAdvertisers.push(advertiser); insertedSales.push(sale); insertedCOmpanies.push(company); console.log("HERE", insertedAdvertisers, insertedSales, insertedCOmpanies) }) resolve({insertedAdvertisers, insertedSales, insertedCOmpanies}); } catch(e){ console.log(e); reject(e); } }); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

En cuanto a Promises, le aconsejo que lea sobre el bucle de eventos y cómo funciona.

Lo que sucede en su código es que JS sabe que se trata de una promesa, por lo que lo moverá a la cola de devolución de llamada hasta que finalice y continúe ejecutando su código y luego lo empuje a la pila para que se ejecute. por lo tanto, si desea ejecutar una determinada lógica después de que finalice una función asíncrona, debe proporcionarla como una devolución de llamada o usar .then()

 async function a() { b().then(()=>{ // your code that you want to be executed after a finishes }) }

Esta imagen podría ilustrar lo que estoy tratando de explicar.

ingrese la descripción de la imagen aquí

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!