Make a second http call and use the result in same Observable

后端 未结 2 1466
孤独总比滥情好
孤独总比滥情好 2020-12-18 05:52

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

2条回答
  •  無奈伤痛
    2020-12-18 06:40

    Recursion is exactly what the expand operator is for:

    let callAndMap = (pageNo) => call({page: pageNo}).map(res => {page: pageNo, data: res.json()});  // map, and save the page number for recursion later.
    
    callAndMap(1)
    .expand(obj => (obj.data.meta.hasMore ? callAndMap(obj.page + 1) : Observable.empty()))
    //.map(obj => obj.data)    // uncomment this line if you need to map back to original response json
    .subscribe(callback);
    

提交回复
热议问题