有什么方法可以创建 "push" IObservable 吗?
Is there any way to create a "push" IObservable?
ReactiveUI 有很多不同的方法可以从现有来源创建 IObservable
,例如另一个 IObservable
、IEnumerable
、event
等,但是据我所知,它实际上没有任何方法可以起源,你会认为这应该是最简单的情况!
很明显,应该有一种内置的方法来创建实现 IObservable<T>
的对象,使用某种 SetNewValue(T value)
方法,您可以调用该方法将新值推送到所有订阅者。但我没有在文档或 Intellisense 中看到它。
我知道这可以通过 Observable.FromEvent
来解决,但这感觉像是一个 hack。我不是在寻找 event
;我在找对象。我错过了什么吗?这是否存在,我只是不知道要寻找什么,或者 FromEvent
解决方法是我能找到的最好的方法吗?
这称为 Subject(或其他语言的 Rx 实现中的 PublishSubject),它完全符合您的描述!
ReactiveUI 有很多不同的方法可以从现有来源创建 IObservable
,例如另一个 IObservable
、IEnumerable
、event
等,但是据我所知,它实际上没有任何方法可以起源,你会认为这应该是最简单的情况!
很明显,应该有一种内置的方法来创建实现 IObservable<T>
的对象,使用某种 SetNewValue(T value)
方法,您可以调用该方法将新值推送到所有订阅者。但我没有在文档或 Intellisense 中看到它。
我知道这可以通过 Observable.FromEvent
来解决,但这感觉像是一个 hack。我不是在寻找 event
;我在找对象。我错过了什么吗?这是否存在,我只是不知道要寻找什么,或者 FromEvent
解决方法是我能找到的最好的方法吗?
这称为 Subject(或其他语言的 Rx 实现中的 PublishSubject),它完全符合您的描述!