Veo que ES Lint desaconseja el uso de await en los bucles, pero no veo ninguna otra opción basada en el idioma nativo para evitar el uso aleatorio excesivo de memoria cuando el proceso dentro del bucle requiere mucha memoria.
Entiendo que esto podría evitarse con el uso de colas de promesa, pero deben implementarse o importarse en una biblioteca.
¿Por qué están promoviendo este tipo de uso imprudente de la memoria y los recursos?
Si ejecuto todos los procesos "a la vez" con Promise.all() cuando cada proceso puede consumir una cantidad de memoria muy aleatoria y podría haber una gran cantidad de elementos para procesar, es probable que el script se bloquee, ¿no es así? ?
¿O puede confirmar si al usar Promise.all() javascript manejará la memoria correctamente para garantizar que la memoria no se agote al ejecutar todos los procesos a la vez?
¿Y si el proceso abre conexiones de red y tiene millones de elementos para procesar? Puedo alcanzar fácilmente las conexiones de red máximas del sistema operativo, y tendría que implementar más mecanismos para ponerlos en cola.
¿Por qué es tan incorrecto usar una espera simple en un bucle? Dicen que la única razón razonable para usar awaits en un ciclo es cuando las iteraciones necesitan información entre sí, pero solo para evitar un consumo excesivo de recursos me parece bastante razonable, ¿no es así?
¿Existe una forma alternativa nativa del idioma de ejecutar procesos pesados asincrónicos en una gran lista de elementos sin correr el riesgo de un consumo excesivo de recursos?
¿Estoy malinterpretando las recomendaciones de ES Lint?
Aquí está el enlace: https://eslint.org/docs/rules/no-await-in-loop