Javascript 如何通过值将最后一项推送到RxJs/BehaviorSubject?

Javascript 如何通过值将最后一项推送到RxJs/BehaviorSubject?,javascript,rxjs,Javascript,Rxjs,我在一个项目中使用rxjs,我面临的问题是myBehaviorSubject.value和myBehaviorSubject.getValue()都返回最后一个通过引用推入可观察对象的项。我能通过某种方式得到最后一项的价值吗 注意:我知道我可以用object.assign复制对象,但这对我来说就像样板代码。我正在寻找一些官方的方法或代码来扩展它以支持此功能。所以我想做的是类似于myBehaviorSubject.getValueByValue()(听起来很奇怪,我知道。)不,rxjs中没有任何东

我在一个项目中使用rxjs,我面临的问题是
myBehaviorSubject.value
myBehaviorSubject.getValue()
都返回最后一个通过引用推入可观察对象的项。我能通过某种方式得到最后一项的价值吗


注意:我知道我可以用
object.assign
复制对象,但这对我来说就像样板代码。我正在寻找一些官方的方法或代码来扩展它以支持此功能。所以我想做的是类似于
myBehaviorSubject.getValueByValue()
(听起来很奇怪,我知道。)

不,rxjs中没有任何东西可以做到这一点,而这实际上并不在Rx域中。虽然Observable在与不可变类型一起使用时效果最好,但rxjs在这方面没有提供任何特性。对于简单的对象克隆,如您所建议的,可以使用类似object.assign的东西。对于集合,我建议使用immutable.js。您可以(如评论中所建议的)扩展Behavior Subject自己,以包括您喜欢的任何实现。

我怀疑rx中已经有类似的东西了。但您始终可以扩展
BehaviorSubject
甚至monkeypatch的原型
BehaviorSubject.prototype.cloneValue=function(){return Object.assign({},this.getValue())}
怎么会有此的内置功能?你想要一份浅显的吗?还是深度复制?介于两者之间?对象是否具有循环引用?变化太多了。