gpt4 book ai didi

rxjs - 我可以让 rxjs observables 向每个订阅者输出唯一/克隆的对象吗?

转载 作者:行者123 更新时间:2023-12-04 17:48:01 26 4
gpt4 key购买 nike

我想确保通过可观察对象传递的对象引用不会在订阅者之间共享,这样不同的订阅者就不会受到彼此操作同一对象的影响。

现在我只是在每个订阅调用中克隆接收到的对象,但是这很容易出错,因为我需要确保在每个订阅中都这样做。我真的很想能够对所有可观察对象的订阅者执行此操作。也许有接线员?

在可观察对象的 .map 中进行克隆只会破坏源和订阅者之间的引用,这只会让我部分到达我想去的地方。

最佳答案

一个.map()就足够了,除非它后面有一个.share():

var rxjs = require("rxjs")

var o = new rxjs.BehaviorSubject({id: 1})
.map(it => ({...it}))
o.subscribe(it => {
it.a = 1;
console.log(it)
})
o.subscribe(it => {
it.b = 2;
console.log(it)
})

运行:https://runkit.com/embed/xwuk9xlo6yhf

Doing a clone in a .map on the observable only breaks the reference between the source and the subscribers, which only gets me partially to where I want to be.

我很困惑。缺少什么?

关于rxjs - 我可以让 rxjs observables 向每个订阅者输出唯一/克隆的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47457670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com