Me está costando entender cómo funciona aysnc/await para mi escenario específico. Tengo algunos bucles for que quiero que se ejecuten en paralelo, pero también tengo otros bucles for que dependen de los datos creados a partir de uno de los bucles for paralelos.
Loop 1 { /* Delete some rows from a SQL Table */ } Loop 2 { /* Delete some rows from a SQL Table */ } Loop 3 { /* Add some rows to a SQL Table */ } Loop 4 { /* Update some rows from a SQL Table */ }Lo que quiero que suceda es que Loop 1, Loop 2 y Loop 3 se ejecuten en paralelo en lugar de secuencialmente. No quiero que Loop 4 se ejecute hasta que Loop 3 haya terminado. ¿Cómo podría lograrse esto con async/await? Estoy tratando de mejorar el tiempo de ejecución de este código, pero necesito usar bucles para iterar a través de los datos en la base de datos.
Alternativamente, si hay una manera de reducir la complejidad del tiempo usando un método diferente en lugar de bucles for, estoy abierto a sugerencias.
await Promise.all(promiseLoop1,promiseLoop2,promiseLoop3);
esperar promesaLoop4;
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
Editar:
Además, puede construir la cadena de comando SQL usando bucles pero solo llamar a SQL una vez.
También es posible que desee ver las transacciones de SQL: