2016-11-12 46 views
0

我想追加一個額外的「閉幕」項目給我的觀察序列。是否有像StartWith那樣的反應性LINQ擴展,但是對於可觀察序列的結尾?是否有像StartWith這樣的擴展名,但是對於可觀察序列的結尾?

這裏是我想要的一種近似,雖然它似乎沒有火災的最後一個元素:

public static IObservable<TSource> EndWith<TSource>(this IObservable<TSource> source, TSource element) 
{ 
    return source.Concat(Observable.Return(element)); 
} 

回答

5

你「近似」是正確的答案。 Concat將增加element到源流的末尾,但前提是:

  1. 源完成
  2. 源沒有錯誤

或許,如果你沒有得到它,你source流ISN實際上終止?

如果你告訴我們更多的代碼等 的沒有一個「開箱即用」 API方法可能會更好(如StartsWith),這是否給你,但使用Concat + Observable.Return是一個漂亮的合理的方式來自己做。

+0

是的,你是對的。原來我使用的是'CombineLatest',我應該使用'WithLatestFrom'。這導致了一個微妙的錯誤,我的觀察者沒有關閉。 – sdgfsdh

相關問題