难道当量/更好的工作
- 与事件模块上的事件类型
- 或可观察的发布事件的性质
在功能上似乎相当,我想不同的是“语义”:
- 难道我们在那里是有意义的访问事件的内部状态的边界内?
- 或者,我们考虑这个事件接口从该流暴露给我们一个被动源
那是正确的思维?
难道当量/更好的工作
在功能上似乎相当,我想不同的是“语义”:
那是正确的思维?
之间的主要区别Event
和Observable
是如何处理状态和未订阅。
事件的功能附加到源事件,不给你任何退订方式。 如果你使用状态组合程序(如Event.scan
),然后附加多个观察员所产生的事件,那么他们都将看到相同的状态。
可观察到的功能构建处理管线的“规格”。 如果您将处理程序IObservable
值,你回来了IDisposable
,可以用来去除所有的处理程序。 附连到每个处理机IObservable
会得到一个新的状态(因为运行时根据“规范”创建一个新的处理链)。
在实践中,主要的区别是在statfullness -如果你想分享的状态,您可以使用Event
模块-实现相同的使用Observable
是可能的,但更难。
如果您使用的内部事件async
,那么你应该使用Observable
和AwaitObservable
(而不是内置AwaitEvent
),因为使用事件组合程序将导致内存泄漏-它会附上没有拆除事件处理程序。