Tengo un problema, el cual trato de solucionar pero ando un poco perdido pero creo que es sencillo y me podrías ayudar.
Tengo una función que obtiene datos, cada dato puede tardar en recibirlo, o incluso no se recibe nada, por eso incluyo varios bucles en la función que me permiten reintentar un máximo de intentos y obtener datos de un número máximo de elementos .
// get from zero to max number of elements export const getFromZero = async (uri: string, max: number) => { log(`Fetching ${chalk.white.bold(max.toString())} tokens`, "info"); let data = []; let i = 0; while (i <= max) { // Find and Retry let re = await get(uri, i, max); if (re === null) { for (let j = 0; j < 20; j++) { re = await get(uri, i, max); if (re !== null) { break; } } if (re === null) { log(`Element ${chalk.white.bold(i.toString())} not found`, "error"); } } if (re) { data.push(re); } i++; } log( `Obtained ${chalk.white.bold(data.length.toString())} elements`, "success" ); return data; };El problema aquí es que busco los datos 1 a uno usando la función await antes de pasar a la siguiente búsqueda, lo que provoca que el proceso sea lento al tener que recibir por ejemplo 5000 elementos, lo que quiero hacer es eso las búsquedas se hagan todas al mismo tiempo, o esperar una cantidad mínima de MS entre cada solicitud, pero quiero devolver los datos al final de la función una vez que se hayan recibido todas las solicitudes o se hayan agotado los reintentos de cada uno , necesito obtener todos los datos sin tener que esperar entre 1 llamada y otra sino solo devolverlo al final del proceso.