我正在使用Angular 4&一个API,其请求有多个页面。
例如,我使用此网址获得10个第一个字符:
http://swapi.co/api/people/
要获得接下来的10个人,我必须向此网址发出请求:http://swapi.co/api/people/?page=2
如何在一个请求中获取所有人?或者通过良好实践制定所有请求的解决方案是什么?
答案 0 :(得分:13)
您必须使用forkJoin
方法才能从多个来源加载数据。
首先,将它们包含在typescript
文件中。
import {Observable} from 'rxjs/Rx';
很多时候,我们需要从多个来源加载数据,我们需要等到所有数据都加载完毕。
forkJoin
方法包含多个Observables
。换句话说,我们使用forkJoin
来运行concurrent
http 请求。
subscribe()
方法在整个 Observables 上设置处理程序。
您可以阅读有关 forkJoin here的更多信息,包括大量示例。
假设您必须获得前10页。
forkJoin
或简单地说:var pages:number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var pages:number[]=new Array(10).fill().map((v,i)=>i+1);