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

109
Views
Llamar a una promesa.todo con una función usando parámetros generados dinámicamente

Hola, estoy tratando de ejecutar la misma función de forma asíncrona usando diferentes parámetros, pero no puedo averiguar cómo almacenar las funciones sin ejecutarlas antes de la promesa.

Aquí hay un ejemplo simplificado de lo que estoy tratando de hacer:

 const myFunc = async(paramsAsArray) => { // does stuff } let paramArray = [ [a,b], [c, d], [e, f] ] let funcArray = [] for (let i = 0; i < paramArray.length; i++) { funcArray.push(myFunc(paramArray[i])) } const response = await Promise.all(funcArray)

Mis funciones continúan ejecutándose en el ciclo for antes de que pueda usar la promesa.todo(). ¿Alguien sabe qué puedo hacer para que ejecuten una promesa usando todos? Cualquier ayuda o sugerencia es apreciada, gracias!

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

0

myFunc(paramArray[i]) llama a la función inmediatamente. Lo está llamando, por lo que no está empujando la función en sí a la matriz, sino su valor devuelto. Además, la resolución de Promise comienza de inmediato, no en Promise.all .

Para impulsar la función en sí misma sin llamarla, y aún así pasarle parámetros, use .bind :

 funcArray.push(myFunc.bind(this, paramArray[i]))

También puede construir su matriz usando .map() :

 const funcArray = paramArray.map( params => myFunc.bind(this, params));
about 4 years ago · Juan Pablo Isaza Report

0

Envuelva su función en otra función para que no se llame de inmediato. luego llámalo dentro Promise.all

 funcArray.push(() => myFunc(paramArray[i]))`
 const response = await Promise.all(funcArray.map(f=> f()))
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!