0
不知,下面给出RX代码:对于可观察,订阅订单是否保证与通知订单相同?
myObservable.subscribe(obs1)
myObservable.subscribe(obs2)
...可以保证obs1.onNext是obs2.onNext
PS之前调用:从我的角度来看,这是不好的做法编写代码这依赖于订阅订单,但我很好奇RX文档中是否有任何此类担保。
谢谢
不知,下面给出RX代码:对于可观察,订阅订单是否保证与通知订单相同?
myObservable.subscribe(obs1)
myObservable.subscribe(obs2)
...可以保证obs1.onNext是obs2.onNext
PS之前调用:从我的角度来看,这是不好的做法编写代码这依赖于订阅订单,但我很好奇RX文档中是否有任何此类担保。
谢谢
为什么你不阅读文档?
答案是,但这取决于。
如果myObservable
是一个可观察的事件,当用户出现时创建一个全新的管道,那么不能保证他们将以任何顺序调用。
例如,Observable.Interval(TimeSpan.FromSeconds(1.0))
将在用户出现时创建一个全新的管道。两个用户然后两个管道。
但是,如果myObservable
是Subject<int>
那么观察者附加的顺序是关键。只有一个观察者会一次接收值,并且会按顺序完成。这是所有用户的共享管道。
您总是可以采取Observable.Interval(TimeSpan.FromSeconds(1.0))
并将.Publish()
添加到最后。然后你会得到一个像Subject<int>
一样的可观察对象,并且可以拥有多个观察者。
我在reactivex.io和introtorx.com上都阅读过,但我没有发现任何有关订阅顺序的明确声明。 – vidi
@vidi - 我的描述是否有意义? – Enigmativity
是的,它的确如此。所以基本上它取决于潜在观察值的实现,因此不应该依赖订阅订单 – vidi