rxjs用于映射一个属性但流式处理整个对象的快捷方式
我想操纵一个对象的属性,但要流式处理整个对象 这种美有捷径吗rxjs用于映射一个属性但流式处理整个对象的快捷方式,rxjs,rxjs5,Rxjs,Rxjs5,我想操纵一个对象的属性,但要流式处理整个对象 这种美有捷径吗 Observable.of(data) .map((data) => {data.newDueDate = this.filterDate(data.newDueDate); return data;}) .map((data) => {data.reply = this.generateReply(data.request); return data;}) ... 我正在搜索类似这样的东西,因此我可以以清晰
Observable.of(data)
.map((data) => {data.newDueDate = this.filterDate(data.newDueDate); return data;})
.map((data) => {data.reply = this.generateReply(data.request); return data;})
...
我正在搜索类似这样的东西,因此我可以以清晰的原子步骤更改数据对象
您可以使用do:
编辑评论:
Observable.of(data)
.do(data => data.newDueDate = this.filterDate(data.newDueDate))
.do(data => data.reply = this.generateReply(data.request))
您可以这样做,也可以创建或拥有自定义操作符,但我认为这太多了。我认为您可以将两种操作都添加到第一个贴图中,但我同意它看起来有点蹩脚,因此您可以使用Object.assign例如:
Observable.of(data)
.map(d => Object.assign(d, {
newDueDate: this.filterDate(data.newDueDate),
reply: this.generateReply(data.request),
}))
谢谢,但这不是我想要的。我也可以这样使用映射,并在最后返回数据,但我想要干净的原子步骤来操作对象。我认为你的答案是最接近的。我不需要一路返回对象。第二部分,用于存档的显式运算符默认情况下不在rxjs工具箱中。对不起,我编辑了我的问题,以便更好地解释我要存档的内容。我正在寻找清晰的原子步骤。@fastr.de我认为没有任何操作员可以做到这一点。当然你可以自己写,但为了做到这一点,我建议先升级到RxJS 6
Observable.of(data)
.do(data => data.newDueDate = this.filterDate(data.newDueDate))
.do(data => data.reply = this.generateReply(data.request))
Observable.of(data)
.map(d => Object.assign(d, {
newDueDate: this.filterDate(data.newDueDate),
reply: this.generateReply(data.request),
}))