【问题标题】:Is an Observer pattern useful in JS?观察者模式在 JS 中有用吗?
【发布时间】:2017-12-30 10:33:01
【问题描述】:

我读过一些关于 JavaScript 中的观察者设计模式的文章,但我不明白:因为 JS 有事件,在我看来这没什么用。我错过了什么吗?

【问题讨论】:

  • 观察者模式是一种在事件系统之上的模式。它允许更容易地构造复杂的代码
  • 浏览器的DOM Api或其他库/api提供事件,但JavaScript规范中没有事件。这些库自己实现事件系统或使用环境提供的事件系统。
  • DOM api 实际上不是观察者模式吗? someel.addEventListener("click",handler)?
  • 从技术上讲,事件是观察者模式的可能实现之一。其他实现也是可能的(采用 RxJS 或节点的 EventEmitter)。
  • 通过代理的观察者不是事件,developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 代码保持阻塞并且当前执行停止,直到陷阱执行然后继续。执行上下文保留在调用堆栈上。

标签: javascript observer-pattern


【解决方案1】:

对点击、调整大小等事件做出反应是一回事,但仅限于 DOM 事件。但是,这里不详细介绍,如果您查看像 RxJS 这样的库(它使用观察者模式),您将能够构建强大的反应式系统,其中除了标准事件之外,基本上任何东西都可以被视为事件系统,它们可以组合,映射等

【讨论】:

  • RxJS 使用 observables,而不是“观察者模式”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多