是否有像 StartWith 这样的扩展,但用于可观察序列的结尾?

Is there an extension like StartWith but for the end of an observable sequence?

我想在我的可观察序列中附加一个额外的 "closing" 项目。是否有类似 StartWith 但用于可观察序列结尾的 Reactive LINQ 扩展?

这是我想要的近似值,尽管它似乎没有触发最后一个元素:

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

您的 'approximation' 是正确答案。 Concat 会将 element 添加到源流的末尾,但前提是:

  1. 来源完成
  2. 来源没有错误

如果您没有理解,也许您的 source 流实际上并未终止?

如果您向我们展示更多您的代码等可能会更好。 没有 'out of the box' API 方法(如 StartsWith)可以为您执行此操作,但是使用 Concat + Observable.Return 是一种非常合理的方法自己做。

System.Reactive package contains 非标准 AppendPrepend 运算符。

// Append a value to an observable sequence.
public static IObservable<TSource> Append<TSource>(this IObservable<TSource> source,
    TSource value);

// Prepend a value to an observable sequence.
public static IObservable<TSource> Prepend<TSource>(this IObservable<TSource> source,
    TSource value);