No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Reintentar una petición

10/23
Recursos

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.

Aportes 3

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Reintentar una petición

Enviar de nuevo la petición al servidor n veces.

import { retry } from 'rxjs/operators';

getAllProducts() {
  return this.http.get<Product[]>(this.apiUrl)
    .pipe(retry(3));
}

Sorprendente la abstracción que nos ofrece rxjs para reintentar solicitudes 😮.

Que maravilla, recuerdo que cuando entre a un trabajo anterior me hicieron ver Ionic3 y estaba esta sintaxis aunque recuerdo que era una version mas antigua de angular cerca de la 4 y yo no lograba entender bien esto de los pipes y los observables. Muy buena clase