2016-11-12 64 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

相关问题