我有两个不同的API端点。一个返回Cards
个对象,另一个返回Cards
个对象数组。我想要做的是从第二个端点获取第一个Card作为Array中的第一个元素。有没有办法做到这一点?两者都是HTTPClient
返回的可观察量,所以也许对某些算子来说很简单,但我还不知道这样做。只是为了更好地说明:
我有:
latestCards$: Observable<Cards> = http.get('latestCardsEndpoint');
// { title: 'Latest', cards: [], ... }
featuredCards$: Observable<Cards[]> = http.get('featuredCardsEndpoint');
// [
// { title: 'Featured1', cards: [], ... },
// { title: 'Featured2', cards: [], ... },
// ...
// ]
我需要
homeCards$: Observable<Cards[]>;
// [
// { title: 'Latest', cards: [], ... },
// { title: 'Featured1', cards: [], ... },
// { title: 'Featured2', cards: [], ... },
// ...
// ]
答案 0 :(得分:1)
有很多方法可以解决这个问题,其中之一就是:
Observable
.combineLatest(latestCards$, featuredCards$) // return an array of responses
.map(([lastestCard, featuredCards]) => [lastestCard, ...featuredCards])
.subscribe(// do your stuff)
以下是jsfiddle中的一个示例:http://jsfiddle.net/foxfghhn/