La siguiente llamada hace alrededor de 800 conexiones en 5 segundos, quiero hacer una conexión cada 5 segundos para reducir la cantidad de conexiones. Si pongo retry(5) después de 5 intentos, se detendrá y es posible que no tenga un resultado exitoso en 5 intentos, por eso creo que necesito un tiempo aquí.
this.http.get(`api`) .pipe(retry()) .subscribe(s=>{ //result },error=>(error));No sé dónde debo poner el intervalo en realidad, por lo que sé, debería venir después de suscribirme, pero parece que este enfoque no es el correcto.
Necesitaría usar el operador retryWhen con el operador de delay . Prueba lo siguiente
import { retryWhen, delay } from 'rxjs/operators'; this.http.get(`api`).pipe( retryWhen(error => error.pipe(delay(5000)) ).subscribe( s => { // result }, error => { // handle error } );He usado una funcionalidad similar en una de mis aplicaciones angulares y funcionó de esta manera. Compruebe si esto ayuda.
this.subscription = interval(5000).subscribe(x => { // API call goes here... });Este código se ejecuta continuamente cada 5 segundos una vez y si desea detener el temporizador, entonces
this.subscription.unsubscribe();