/ / Cómo usar múltiples solicitudes Http en Angular 2 - javascript, angular, api, mecanografiado

Cómo usar múltiples solicitudes de HTTP en Angular 2 - javascript, angular, api, mecanografiado

Estoy haciendo una aplicación simple con Angular 4 y una API que tiene varias páginas para sus solicitudes.

Por ejemplo, obtengo los 10 primeros caracteres con esta url: http://swapi.co/api/people/

Y para obtener las siguientes 10 personas, tengo que hacer una solicitud a esta url: http://swapi.co/api/people/?page=2

¿Cómo puedo obtener todas las personas en una sola solicitud? ¿O cuál es la solución para hacer todas las solicitudes con buenas prácticas?

Respuestas

12 para la respuesta № 1

Tienes que usar forkJoin método para cargar datos de más de una fuente.

En primer lugar, inclúyalos en el typescript archivo.

import {Observable} from "rxjs/Rx";

Muchas veces, necesitamos cargar datos de más de una fuente, y debemos esperar hasta que se hayan cargado todos los datos.

forkJoin método envuelve múltiples Observables. En otras palabras, usamos forkJoin correr concurrent http peticiones.

subscribe() método de forkJoin establece los controladores en todo el conjunto de Observables.

Puedes leer más sobre tenedor aquí, incluyendo muchos ejemplos.

Supongamos que tiene que obtener las primeras 10 páginas.

var pages:number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

O simplemente: var pages:number[]=new Array(10).fill().map((v,i)=>i+1);

// map them into a array of observables and forkJoin
return Observable.forkJoin(
pages.map(
i => this.http.get("http://swapi.co/api/people/?page=" + i)
.map(res => res.json())
)
).subscribe(people => this.people = people);