Tengo un bucle que envía x solicitudes http.
En algunos casos, el usuario puede enviar tantas solicitudes y eso podría afectar el rendimiento del servidor.
Me gustaría convertir la lógica existente y poder administrar el número máximo de solicitudes.
Código de muestra
for( let i; i<x; i++ ) { this.subs= this.globalService.getData(formData, id).subscribe(data => {...} }¿Cómo puedo autorizar a Triger solo si el número de solicitudes es <10, por ejemplo, de lo contrario, espere la respuesta de API y verifique si los observadores actuales son menos de 10?
Es importante suscribirse secuencialmente y no enviar una serie de datos para no cambiar la lógica del código dentro de la suscripción.
Probablemente la forma más fácil es usar mergeMap() con una opción de concurrency opcional.
range(x) .pipe( mergeMap(i => this.globalService.getData(formData, i), 10), ) .subscribe(); De esta forma, puede hacer que mergeMap() realice como máximo 10 solicitudes simultáneas.