rxjs:进行转换,而不是映射
我需要对订阅元素进行转换。因此,我使用转换而不是映射,因为我需要更改每个提要的字段对象值。我的订阅是:rxjs:进行转换,而不是映射,rxjs,Rxjs,我需要对订阅元素进行转换。因此,我使用转换而不是映射,因为我需要更改每个提要的字段对象值。我的订阅是: this.subscription$ = this.store$ .select(fromRoot.getSubscriptionEntities) .filter(subscription => subscription.status == 'active') .takeUntil(this.componentDestroyed$); 因此,我需要
this.subscription$ = this.store$
.select(fromRoot.getSubscriptionEntities)
.filter(subscription => subscription.status == 'active')
.takeUntil(this.componentDestroyed$);
因此,我需要:
foreach subscription
subscription.periodEnd = subscription.periodEnd * 1000
我应该在哪里做这个?我尝试将其转换为do()
,但所有字段都是只读的
有什么想法吗?使用地图和不变性怎么样
this.store$
.select(fromRoot.getSubscriptionEntities)
.filter(subscription => subscription.status == 'active')
.map(subscription => ({
...subscription,
periodEnd: subscription.periodEnd * 1000
}))
.takeUntil(this.componentDestroyed$);
PS:您不需要为您的可观察对象保留订阅,因为您已经订阅了;) 你为什么要修改一个“外来”对象?从现在开始,它是我的。。。。这个问题的意图更像是:通过向非自己创建的类添加随机属性,您想要实现什么?我收到的对象包含以秒为单位的值。我需要以毫秒为单位获取它们。好吧,我想我现在迷路了,但您所指的
订阅
实际上是从商店收到的数据
,对吗?如果是这种情况,请不要称之为订阅
,因为实际的订阅
和收到的数据
是两个完全不同的东西。很容易将您的“订阅”与实际的rxjs订阅混为一谈