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

94
Vistas
¿Cómo apilar promesas dinámicamente?

Tengo subprojects de objetos anidados con una propiedad de tipo matriz: userEstimates de usuario con objeto (s) Estimate .

Estoy buscando iterar a través de userEstimates y enviar una búsqueda/promesa a una matriz sin llamarla.

principal (dentro de la función async )

 await subproject.getUserEstimates(true); let stack = []; subproject.userEstimates.forEach(ue => stack.push(ue.fetchAvailableRates) ); console.log(stack); // 3) [ƒ, ƒ, ƒ] await Promise.all(stack); fillForm(subproject);

sin embargo, los atributos en el subproject no están definidos al llamar a fillForm

definición de función para fetchAvailableRates :

 fetchAvailableRates = () => { this.availableRates = fetch(...) .then((resp) => { if (resp.ok) return resp.json(); else throw new Error("Something went wrong"); }) .then((r) => { ... return { Rate.get(), // returns class ... }; }) .catch((e) => { console.error(e); }); };

EDITAR: cambié mi redacción de la cola a la pila, ya que estoy tratando de ejecutar todas las solicitudes a la vez, y no me importa el orden

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su definición para fetchAvailableRates usa this , pero cuando se refiere a la función de un objeto sin llamarlo (como stack.push(ue.fetchAvailableRates) ), pierde la referencia a this y simplemente se convierte en una función.

Para hacer referencia a una función que llama a ue.fetchAvailableRates en la instancia de ue en ese momento, debe llamar a () => ue.fetchAvailableRates() o ue.fetchAvailableRates.bind(ue) .

Ese no es el único cambio que necesitaría hacer Promise.all() no acepta funciones, solo promesas, por lo que la llamada correcta probablemente sea hacer que ue.fetchAvailableRates() devuelva la Promesa y la agregue a la pila.

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