热/冷可观察,1个订阅者,多个选择查询



1个订阅用户可以有多个选择查询吗?

,

var obj = item.tolist().subscribe(OnNext);
var obj2 = item.where(i=>i.type=="box").subscribe(OnNext);

不确定代码是否正确。但大多数情况下是这样的。这使用2订阅。只能使用1个订阅吗?

你绝对可以为不同的可观察对象订阅相同的方法。但是,如果订阅者具有某种状态,则需要注意并发性问题,因为订阅者可能同时执行一个不同的线程。然而,这并不是Rx独有的问题,使用Rx可以帮助您避免共享状态。

下面是一个工作示例:

var observable = Observable.Interval(TimeSpan.FromSeconds(0.2)).Take(10);
var projectionA = observable
  .Where(i => i % 2 == 0)
  .Select(i => Tuple.Create("A", i));
var projectionB = observable
  .Select(i => Tuple.Create("B", i));
projectionA.Subscribe(Console.WriteLine);
projectionB.Subscribe(Console.WriteLine);

我订阅Console.WriteLine两个投影,如果您尝试执行代码,您将看到两个流中的事件都写入控制台。

相关内容

  • 没有找到相关文章

最新更新