Implementación de Retry con Observadores en Angular

Clase 10 de 23Curso de Consumo de APIs REST con Angular

Resumen

Gracias a los observables en conjunto con RxJS puedes fácilmente implementar funcionalidades que de lo contrario sería complejo desarrollar por tu cuenta.

Reintento automático de peticiones fallidas

Para reintentar peticiones HTTP, puedes hacer que automáticamente vuelva a realizar otro intento si este llegara a fallar. Sería muy complejo su desarrollo casero ya que hay que recurrir a la recursividad y asincronicidad al mismo tiempo.

// services/api.service.ts
import { retry } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class ApiService {

  constructor(
    private http: HttpClient,
  ) { }

  getProduct(idProduct: number): Observable<Product> {
    return this.http.get<Product>(`https://example.com/api/productos/${idProduct}`)
      .pipe(
        retry(2)
      );
  }

}

El método .pipe() de los observables permite manipular datos y con la función retry() de RxJS le indicas la cantidad de reintentos que buscas para que la petición lo haga en caso de fallar.

Código fuente del proyecto.


Contribución creada por: Kevin Fiorentino.