Quiero esperar una serie de Promesas , pero no puedo agregarlas sin ejecutarlas. Así que tuve que crear una función contenedora, sin embargo, Promise.all no las ejecuta.
Este es mi código:
const set = new Set(Array.from([1, 2, 3, 4, 5])); const func = async (input) => { let result = await asyncFunc(input); return result; } var promises = []; for(const element of set) { promises.push(() => { func(element) }); } await Promise.all(promises).then(values => { console.log(values); });Espero que Promise.all ejecute la función func , pero no lo hace. ¿Cómo puedo lograr este resultado?
Simplemente podría enviar promesas a su matriz, no funciones:
const set = new Set(Array.from([1, 2, 3, 4, 5])); const func = async (input) => { let result = await asyncFunc(input); return result; } var promises = []; for(const element of set) { promises.push(func(element)); } await Promise.all(promises).then(values => { console.log(values); });¡Encontré mi problema!
El problema mío fue que algunas de mis promesas se rechazarán y Promise.all no continúa cuando este es el caso.
¡Lo resolví usando Promise.allSettled !