可以使用这两种方法,以便一个事件处理程序可以侦听来自另一个事件处理程序的事件的触发。文档说它们是相同的,只是不同的实现。我想知道为什么框架困扰为同一个任务提供两种不同的方法?可能pipe()
更适合链接,但我想知道使用pipe()
优于emit()/subscribe()
是否还有其他隐藏优势
答案 0 :(得分:2)
如果您执行widgetA.pipe(widgetB)
,则widgetA
的所有事件都会发送到widgetB
,无论widgetB
是否正在收听这些事件。 Pipe
就像一个消防员。
Subscribe
更高效。 WidgetB.subscribe(widgetA)
说你发出的东西,我想订阅一个特定的子集。"然后完全忽略其他事件。
在与DOM交互时尤为重要,DOM会输出大量事件(mousedown,mouseup,touchmove,resize等等),并且在收听时使用Subscribe
是首选到DOM元素。