es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Angular-RxJS- Ocultar spinner en medio de una llamada API larga y continuar con la llamada API.

El tiempo de respuesta de la llamada a la API varía entre 2 y 30 segundos.
Después de inicializar la llamada a la API, si la llamada a la API tardará más de cinco segundos, en el momento del sexto segundo, debo realizar alguna acción (ocultar el indicador) y la llamada debe continuar hasta que esté completa.

¿Cuál puede ser la mejor combinación de operadores RxJS para lograr eso?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La mejor combinación de operadores RxJS para lograr este escenario sería utilizar el operador “timeoutWith” con un tiempo de espera de 5 segundos y un observable de respaldo que maneje la ocultación del indicador. Esto puede ser seguido por el operador “switchMap” para asegurar que la llamada original a la API continúe incluso después de ocultar el indicador. Aquí hay un ejemplo de código que demuestra esto:

    import { from, of } from 'rxjs';
    import { timeoutWith, switchMap } from 'rxjs/operators';
    
    const apiCall$ = from(fetch('url-de-api'));
    
    const fallback$ = of("Indicador Oculto");
    
    const timeout$ = apiCall$.pipe(timeoutWith(5000, fallback$));
    
    const result$ = timeout$.pipe(switchMap(response => {
      // Manejar la respuesta de la llamada a la API aquí
    }));
    
    result$.subscribe();
    

Comments are closed.