从自定义元素检测事件侦听器(延迟发出事件)

Detect event listener from custom element (emitting events lazily)

我正在编写一个自定义元素,我想定期发出一个事件。 发出事件需要一些工作,所以我在想也许我可以偷懒,只在有侦听器的情况下发出事件(并完成工作)。

是否可以检测到有人在监听事件(非冒泡)? 在那种情况下开始发射,直到听众被移除。

或者 Javascript 运行时间是否足够聪明,不会在没有侦听器时 运行 间隔(唯一的副作用是创建事件)?

有了Javascript标准事件,就出现了you can't (unless you override注册机制。

但是使用自定义注册和回调方法,您可以通过实现 Observer pattern.

无论如何,如果你很懒,也许发送无用的事件会更容易:-)