【发布时间】:2018-08-23 17:05:01
【问题描述】:
因此,在 vanilla JS 中,我理解 map 运算符的方式是它遍历数组中的每个项目并在该项目上工作。所以如果我有一个数组:
[ {...}, {...}, {...} ]
然后 .map 将遍历此数组中的每个对象,当您在其中时公开该对象的属性。
对于 RxJS,我最常看到的是:map(x=>x).map(...),因为看起来 RxJS 映射运算符实际上并没有遍历数组中的每个对象。我发现最常用的方法是简单地暴露可观察对象的内部,以便可以在其上完成其他工作。
所以我有两个问题:
- map(x=>x) 是否有更语义化的运算符?
- 为什么 RxJS 的地图与 Javascript 的地图有偏差?
【问题讨论】:
-
array.map将函数应用于数组中的每个值。observable.map将该函数应用于流中的每个值。目前尚不清楚为什么您认为这不是在做同样的事情。数组数组上的映射不会展开内部数组。 -
感谢您解决我的知识差距@jonrsharpe
-
另外,map(x=>x) 不做任何事情,无论接收者是数组还是 Observable。
-
pipe(map(x=>x)) 是正确的方法,.map 语法已弃用
-
@danday74 我的意思是在 Observable 的结果上使用 JS 的 Array.map,很抱歉造成混淆。
标签: angular rxjs reactive-programming rxjs6