为什么javascript Observable不会被称为EventStream呢?

时间:2018-01-27 11:40:49

标签: javascript rxjs observable

Observable似乎只是“事件流”。 https://egghead.io/lessons/rxjs-introducing-the-observable的作者似乎倾向于将它们称为流(即使他试图将它们称为“异步集合”,或“随时间推移而来的集合”,这似乎是人为的)。

Streams是直观的东西,随着时间的推移,imho。

(你已经失踪的反应式编程的介绍)https://gist.github.com/staltz/868e7e9bc2a7b8c1f754的作者一路走来,只是称它们为“事件流”。

那么,为什么他们称为Observables而不仅仅是EventStreams?

2 个答案:

答案 0 :(得分:1)

名称Observable来自"Observer pattern",这部分启发了反应式编程。 Jafar Husain在this interview中给出了很好的解释。

我认为EventStream过于宽泛。 Observable有点像事件流的子类型。您还可以拥有SubjectBehaviorSubject以及封装流概念的所有其他类型的内容。

Observable是一个好名字,因为你唯一可以做的就是"观察"它。您可以.subscribe对所发生的价值采取行动,但您无法添加事件"它。 EventStream并不代表名称。 EventStream.addEvent('click')似乎是一种非常合理的方法。

在一天结束时,它真的只是一个意见,但是:)

答案 1 :(得分:0)

我不同意EventStream太广泛了。这太具体了。

观察者观察某事。时钟是可观察的。它可以建模为单个更改值。注意'值'。

Observable以观察者设计模式命名。

将可观察对象(例如时钟)建模为事件流会迫使用户的本体可能与其概念词典不兼容。

将Observable作为任何观察的主题,保持最高的抽象和有用性。