Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

111
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda