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

126
Views
Promise.all no espera para completar las solicitudes
await Promise.all( endpoints.map((endpoint) => this.httpService.get(endpoint).pipe( map((response) => { return response.data['result']; }), ), ), ).then( axios.spread((...allData) => { allData.forEach((res) => res.subscribe((res) => { apiFeedBack.push(res); console.log(apiFeedBack); }), ); }), );

Durante la depuración, se salta la ejecución de promise.all y devuelve directamente undefined como respuesta. Que me estoy perdiendo aqui

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

0

Debe devolver la matriz de promesas recibidas de la función de mapa como se muestra a continuación:

 await Promise.all( return endpoints.map((endpoint) => this.httpService.get(endpoint).pipe( map((response) => { return response.data['result']; }), ), ), ).then( axios.spread((...allData) => { allData.forEach((res) => res.subscribe((res) => { apiFeedBack.push(res); console.log(apiFeedBack); }), ); }), )
about 4 years ago · Juan Pablo Isaza Report

0

En primer lugar, cuando esté usando await, no use then . Así es como sería:

 const promiseAll = async () => { try { const res = await Promise.all(promises); return res; } catch (e) { console.error(e); } }

Ahora, necesitamos obtener los valores de las promesas usando await. Además, estaría limpio si lo escribieras de esta manera:

 const endpoints_Promises = endPoints.map(endPoint => { return new Promise((resolve, reject) => { this.httpService.get(endpoint).pipe( map((response) => { resolve(response.data['result']); }) ) }) }) try { const responses = await Promise.all(endpoints_Promises); responses.forEach(data => console.log(data)); } catch (e) { console.error(`Error occured: ${e}`); }
about 4 years ago · Juan Pablo Isaza Report

0

amigos, como sabrán, @nestjs/axios en NestJS devuelve observables en lugar de promesas, sin embargo, este no es el caso de axios .

Entonces, en caso de que necesite hacer observable asíncrono, deberá convertirlo en promesa, aunque no es una forma recomendada y .toPromise() está obsoleto en la última versión de @nestjs/axios .

 Promise.all( return endpoints.map((endpoint) => this.httpService.get(endpoint).toPromise(), ), ).then((responses)=> { // here you get the resolved promises responses array })

Consulte esto para obtener más información sobre el cumplimiento de Promise.all .

Consulte esto para obtener más información si debe usar observable async/await ¿Es una buena práctica usar Observable con async/await?

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!