gpt4 book ai didi

angular - Angular 2中的嵌套Observable

转载 作者:太空狗 更新时间:2023-10-29 17:08:32 27 4
gpt4 key购买 nike

我正在尝试使用 Angular 2 的 http GET 来检索 HackerNews 上的热门文章列表,然后我将在嵌套的可观察对象中检索它们各自的详细信息。

当我尝试循环显示 HTML 中的数据时遇到此错误。

Cannot find a differ supporting object '[object Object]'

Cannot find a differ supporting object '[object Object]'

另外,我猜应该有更好的方法来做到这一点,任何指示?

getTopPost() {
this.http.get('https://hacker-news.firebaseio.com/v0/topstories.json')
.map(res => res.json())
.subscribe(
data => {
data.map(function(postId){
let storyUrl = "https://hacker-news.firebaseio.com/v0/item/"+ postId +".json";
that.http.get(storyUrl)
.map(res => res.json())
.subscribe(data => that.hnData = data,
err => that.logError(err),
() => console.log(that.hnData));

});

},
err => this.logError(err);
);

}

HTML

<ion-item *ngFor="#item of hnData">
{{item.title}}
</ion-item>

最佳答案

我认为您可以像这样以更像 Rx 的方式重写它:

getTopPost() {
return http.get('https://hacker-news.firebaseio.com/v0/topstories.json')
.map(res => res.json())
.mergeMap(list => Observable.fromArray(list))
.mergeMap(postId => http.get("https://hacker-news.firebaseio.com/v0/item/"+ postId +".json"))
.map(res => res.json())
}

关于angular - Angular 2中的嵌套Observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651304/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com