【发布时间】:2019-01-25 19:18:27
【问题描述】:
我有一个解析器,它从服务中获取数据并将 Observable 对象传递给订阅和实现解析器的组件。
resolve (route: ActivatedRouteSnapshot): Observable<NewsAPIArticle[]> {
return this.newsAPIService.getNewsAPIArticles()
.pipe(
catchError(error => {
this.alertify.error('Problem retrieving news');
return of(null);
}),
take(5)
);
}
在组件的ngOnInit中,我获取数据,保存到本地数组,控制台记录数组。
ngOnInit() {
this.router.data.subscribe(data => {
this.articles = data['news']['articles'];
console.log(this.articles);
this.language = 'en';
});
}
但是,正如我理解的那样,解析器应该从可观察对象中“获取”5 个东西,而不是控制台记录 5 个东西,而是该数组返回 20 个对象。我在 take rxjs 运算符中做错了什么?我不想要全部 20 条回复,可能只有 5 条。
【问题讨论】:
-
this.newsAPIService.getNewsAPIArticles().pipe(switchMap(r => r), take(5))