【问题标题】:Rx Publish() breaks IObservable of XDocumentsRx Publish() 破坏了 XDocuments 的 IObservable
【发布时间】:2012-02-23 16:13:40
【问题描述】:

我有以下产生 IObservable 问题的 Rx 查询,它不能与 Publish() 一起使用,因此随着订阅者数量的增加,内存负载也会增加

// Works
Observable
    .Interval(TimeSpan.FromSeconds(1.0))
    .Select(_ => XDocument.Load("http://test.com/data.xml"));

// Broken
Observable
    .Interval(TimeSpan.FromSeconds(1.0))
    .Select(_ => XDocument.Load("http://test.com/data.xml")).Publish();

有没有更好的方法来创建这样的 Observable?

【问题讨论】:

  • “不适用于 Publish()”是什么意思?
  • 发布后您没有 Connect()。

标签: system.reactive reactive-programming reactive-extensions-js


【解决方案1】:

在您调用 Connect() 之前,IConnectableObservable 与其源断开连接,因此在有人订阅它之前不会发生任何事情(Interval 不会启动它的计时器)。 Connect() 将使 Publish 订阅其源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多