【问题标题】:Cyclic IObservable Chain in Reactive .NETReactive .NET 中的循环 IObservable 链
【发布时间】:2014-06-17 21:47:13
【问题描述】:

我正在寻找实现循环 IObservable 链的最佳方法。

例如:

IObservable<B> Foo(IObservable<A> fizz)
{
    //stuff
}

IObservable<A> Bar(IObservable<A> fizz, IObservable<B> buzz)
{
    //stuff
}

我的实现:

var fizzes = new BehaviorSubject<A>();
var buzzes = Foo(fizzes);
Bar(fizzes, buzzes).Subscribe(f => fizzes.OnNext(f));

有没有更好的方法来做到这一点?使用 Subject 感觉很脏,而且通常不够优雅。

【问题讨论】:

    标签: c# .net system.reactive reactive-programming dataflow


    【解决方案1】:

    线

    Bar(fizzes, buzzes).Subscribe(f => fizzes.OnNext(f));
    

    可以更简单,改为

    Bar(fizzes, buzzes).Subscribe(fizzes);
    

    由于Subscribe 方法采用IObserver,因此通常使用的 lambda 方法只是为此的快捷方式。

    因此,fizzes 被用作IObserverIObservable,这是Subject 的定义。如果这是您想要的行为,那么Subject 可能是您要走的路。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-04
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多