0

这两种方法都可以使用,以便一个事件处理程序可以监听来自另一个事件处理程序的事件触发。文档说它们是同一件事,只是实现不同。我想知道为什么框架会为同一任务提供两种不同的方法?可能pipe()更适合链接,但我想知道使用pipe()over是否还有其他隐藏的优势emit()/subscribe()

4

1 回答 1

2

如果你这样做了,widgetA.pipe(widgetB)那么所有的事件都会widgetA被发送到,widgetB无论是否widgetB正在监听它们。Pipe就像一根消防水带。

Subscribe另一方面,性能更高。WidgetB.subscribe(widgetA)说“你发出的东西,我想订阅一个特定的子集。” 然后完全忽略其他事件。

这在与 DOM 交互时尤其重要,它会输出大量事件(mousedown、mouseup、touchmove、resize 等),并且Subscribe在侦听 DOM 元素时首选使用它。

于 2014-06-25T23:13:08.280 回答