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 there are more items a hasMore
flag will be set in the response. You then have to call the API again with the parameter page=2. It would be nice to have one Observable, with both server responses.
My code looks something like this:
call({page: 1})
.map(res => res.json())
.do((res) => {
if(res.meta.hasMore){
// do another request with page = 2
}
}
.map(...)
.subscribe(callback)
call
is a function that will use the http module to make the request and return an Observable. Inside of the if statement I want to make another http request and put the result on the same Observable, so that the callback, registered with subscribe, will be called twice (one time for each response).
I am not really sure how to do it. I tried using flatMap to make the next request, but had no success.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…