Desarrollé un servicio con Nest JS que llama a una API de terceros para obtener el estado relacionado con algunas solicitudes de incorporación de cambios en Azure DevOps. La lógica funciona de la siguiente manera: proporciono una matriz con enlaces a una función, luego uso un bucle for para un bloque de código que se encargará de obtener la URL de la matriz y crear la solicitud http y llamar a la API para recuperar la estado (usando la implementación de axios en Nest JS). Funciona como una operación asíncrona que realiza secuencialmente cada solicitud. Pero está tardando relativamente demasiado (alrededor de 160 segundos para obtener 1000 solicitudes). ¿Alguien tiene alguna sugerencia sobre cómo mejorar la velocidad de ejecución?
async getAzureStatus(urlAdjusted) { const updatedPRStatus = [process.env.EXCEL_COLUMN_PR_STATUS_HEADER]; for(let counter = 1; counter < urlAdjusted.length; counter++) { if( urlAdjusted[counter] == 'Not needed') { updatedPRStatus.push('Not needed'); } else { const config = { headers: { Authorization: process.env.AUTHENTICATION_KEY, }, }; try { const response = await lastValueFrom(this.httpService.get(urlAdjusted[counter], config)); updatedPRStatus.push(response.data['status']); } catch(error) { console.log('error retrieving pr number ' + counter ); updatedPRStatus.push('Could not get any data'); } } } return updatedPRStatus; }