I am using angular 2 and it\'s http component.
I want to call a REST API that will return a list of Elements. The size of that list is limited to 100 entries. If the
You could leverage the flatMap operator for this:
call({page: 1})
.map(res => res.json())
.flatMap((res) => {
if(res.meta.hasMore){
return Observable.forkJoin([
Observable.of(res),
call({page: 2}).map(res => res.json()
]);
} else {
return Observable.of(res);
}
})
.map(data => {
// if data is an array, it contains both responses of request
// data[0] -> data for first page
// data[1] -> data for second page
// if data is an object, it contains the result of the first page
})
.subscribe(callback);
The last map operator is to format the data in both cases for the callback specified in the subscribe method.