当我从 HTTP 调用接收 RxJS 数组时,我认为我对 RxJS 如何使用数组存在误解。
例如我有:
public getNews(): Observable<News[]> {
return this.http.get<News[]>("/news");
}
Run Code Online (Sandbox Code Playgroud)
当我想在上面使用一个简单的地图之后:
this.newsService.getNews().pipe(map(news => {
return {
// DO SOMETHING HERE WITH NEWS
};
}));
Run Code Online (Sandbox Code Playgroud)
问题是我的参数的类型,Typescript 告诉我它是一个新闻数组,但它在地图内,所以通常它必须是新闻类型,对吗?
我不知道我是否清楚,但如果有人可以解释我,那就太好了:)
您好,要将数组转换为项目列表,您可以使用flatMap运算符;您可以使用subscribe或 transform处理每个项目map
this.service.getNews().pipe(
flatMap(x => x)
).subscribe(x => {
// do something for each item
});
Run Code Online (Sandbox Code Playgroud)
或者
this.service.getNews().pipe(
flatMap(x => x),
map(x => {
// transform each item
})
);
Run Code Online (Sandbox Code Playgroud)
第二个仍然是一个 Observable
| 归档时间: |
|
| 查看次数: |
4286 次 |
| 最近记录: |