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));
}
Http Basic
Lo que aprenderás para consumir API con Angular
Solicitudes GET
Detalle de producto
Implementando slides
Solicitudes POST
Solicitudes PUT y PATCH
Solicitudes DELETE
Url Parameters / Paginación
Observable vs. Promesa
Reintentar una petición
Buenas prácticas
El problema de CORS
Manejo de ambientes
Manejo de errores
Transformar peticiones
Evitando el callback hell
Auth
Login y manejo de Auth
Manejo de headers
Uso de interceptores
Enviar Token con un interceptor
Creando un contexto a interceptor
Archivos
Descarga de archivos con Http
Subida de archivos con Http
Despedida
Continúa con el Curso de Angular Router y Programación Modular
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Gracias a los observables en conjunto con RxJS puedes fácilmente implementar funcionalidades que de lo contrario sería complejo desarrollar por tu cuenta.
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.
Contribución creada por: Kevin Fiorentino.
Aportes 3
Preguntas 1
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
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.