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

143
Views
Promises devuelve un valor indefinido

Estoy tratando de hacer una prueba con bromas y promesas.

Cuando trato de escribir en la consola, el resultado lo obtengo de la promesa. Tengo un valor indefinido.

Este es mi código de prueba:

 describe("Search concurrent with promises", () => { describe("Test 10: Several searches in DDBB", () => { function connection(){ let ddbb = new PGMappingDDBB(); return new Promise((resolve, reject) => { let db = ddbb.connect(); //resolve("Hello World"); resolve(db); }); } test("Test 12: Several searches concurrently", () => { connection().then(ddbb => { console.log(ddbb); }); }); }); });

ddbb.connect() es una función asíncrona. El código de connect() es:

 async connect(){ this.client = await poolMapping.connect(); }

Cuando trato de escribir el estado de la variable ddbb , tengo que no está definido.

Sin embargo, si comento resolve(db) y elimino el comentario de resolve("Hello World") , cuando escribo el valor de ddbb "Hello World" .

¿Qué estoy haciendo mal?

Editar yo:

ddbb.connect() devuelve una Promesa. Si escribo lo que devuelve console.log(ddbb.connect()). Tengo:

 Promise { <pending> }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para explicar:

 async connect(){ this.client = await poolMapping.connect(); // NOTE: There is no return value }
 describe("Search concurrent with promises", () => { describe("Test 10: Several searches in DDBB", () => { function connection(){ let ddbb = new PGMappingDDBB(); return new Promise((resolve, reject) => { let db = ddbb.connect(); // ^^ this will be undefined, as connect has no return value resolve(db); // ^^^^^^^^^^^^ Resolving the promise with undefined }); } test("Test 12: Several searches concurrently", () => { connection().then(ddbb => { console.log(ddbb); /// ^^^^ will be undefined }); }); }); });

Además, jest no está esperando el resultado de la promesa y no estás afirmando nada en la prueba, por lo que siempre tendrá éxito.

Cuando se trata de promesas, si devuelves la promesa de la prueba, Jest la esperará. Pero aún necesita afirmar sobre el valor.

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!