2010-03-02 134 views
3

有沒有這種速記版本。我想調用一個序列,然後在完成時調用另一個序列。Chaining Observable訂閱

var seq1 = Observable.Range(1, 20); 
var seq2 = Observable.Range(21, 20); 

seq1.Subscribe(
    i => Console.WriteLine(i), 
    () => seq2.Subscribe(i => Console.WriteLine(i))); 
+0

我在做類似的東西,並預計將在內部認購例外咬我,直到我想出了這一點:http://stackoverflow.com /問題/ 11769602 /自誤差依賴,自處置-的模式的​​IObservable的訂閱/ 11770674#11770674。不知你自己是否有這樣的問題,或者知道有一種不同的,也許是內置的方法來阻止觀察者異常一直冒泡到觀察者。 – 2012-08-02 05:50:09

回答

3

對我來說,你不是完全清楚你想要做什麼(而且我沒有文檔)但是Observables.Concat你在做什麼?

var seq1 = Observable.Range(1, 20); 
var seq2 = Observable.Range(21, 20); 
var both = seq1.Concat(seq2); 
both.Subscribe(i => Console.WriteLine(i)); 

(我只是檢查了這一點實際工作:)

+0

由於他有20個seq1的結尾,21個seq​​2的開始,因此Concat是正確的。 – 2010-03-03 00:19:24

+0

不要試圖做任何事情,而是讓2個可觀察對象一個接一個地執行。這似乎是做我想在這種情況下,但如果2可觀察到哪裏不同類型? – 2010-03-03 07:22:21

+0

@kouPhax:我不完全確定你會如何使用它。你能舉一個你想要*能寫的東西的例子嗎? – 2010-03-03 09:02:37