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