我有一个热门观察(来自一个事件),我正在调用DistinctUntilChanged哪个将有多个订阅者,他们将在observable开始运行并在其产生第一个值后的不同时间订阅.订阅者将获得IObservable我班上的财产.
我如何做到这一点,以便每当有人订阅观察者时,他们获得最后发布的值,但是观察到的正常行为呢?我想我可能正在寻找,PublishLast但我不确定它是否有其他副作用.
类似的问题:如何在订阅时获得最新值的IObservable?这是一个非常相似的问题,但它是从一年多前开始的,并且已经对Rx做了很多补充,所以我认为现在可能有一个内置函数而不是必须依赖于BehaviorSubject所以我不认为这是完全相同的.
编辑: 这是我实际上要做的事情.我正在谈论的实际可观察序列下面有一条评论.
另一个答案很接近.你想要一个ReplaySubject(1),即只重播1个值; 或者你想要一个BehaviorSubject.区别在于行为主体将需要默认值.这也将保证订户将始终立即获得价值.
var replay1 = source.Replay(1);
replay1.Connect();
//Or
var alwaysHaveValue = source.Multicast(new BehaviorSubject<int>(-1));
Run Code Online (Sandbox Code Playgroud)
要了解每个主题,请查看我的Rx简介帖子
| 归档时间: |
|
| 查看次数: |
3795 次 |
| 最近记录: |