我正在尝试Angular 2的http GET来检索HackerNews上的顶级文章列表,之后我将在嵌套的observable中检索它们各自的细节。Angular 2中的嵌套Observable
我试图循环显示HTML中的数据时遇到此错误。
无法找到一个不同的支持对象“的翻译:”
而且,我猜测应该有更好的方式来做到这一点,任何指针?
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>
但为什么不是一个好的做法,以嵌套的呢?我有一个问题,因为我嵌套到http.get返回两个可观察的,我想它有像承诺(解决第一次调用,然后做第二次),但我得到一些未定义的参数,如我在另一个范围。 – mautrok
我真的不认为嵌套可观察的xhr调用是不好的,但不好的是嵌套订阅(订阅另一个可观察订阅内的观察值)。你必须使用'flatMap','concatMap'等操作符,并且只需一次订阅它。 – bertrandg