简介
在前端开发中,事件监听是必不可少的一个功能。而 Node.js 中的 EventEmitter 已经成为了一个比较常用的事件监听器,它可以让我们在 Node.js 中实现事件驱动的开发思路。
而在 EventEmitter 之上又有了一款 npm 包,它就是本文要介绍的 weighted-emitter,它提供了一个带权重的事件监听器,可以让我们更加精确的控制事件的触发顺序。
安装
首先我们需要使用 npm 进行安装:
--- ------- ----------------
之后,在我们要使用 weighted-emitter 的文件中引入它:
----- --------------- - ----------------------------
使用
在了解了 weighted-emitter 的基本用法之前,让我们先来看一下它的 API:
new WeightedEmitter()
新建一个 weighted emitter:
----- ------- - --- ------------------
emitter.on(event, listener, weight)
添加一个监听器,weight 即权重,取值范围为 0 到 100,默认值为 50:
------------------ -- -- - ----------------- ---- -- ---- ------------------ -- -- - ----------------- ---- -- ----
emitter.emit(event, ...args)
触发一个事件:
---------------------
emitter.removeListener(event, listener)
移除一个监听器:
----- -------- - -- -- - -------------------- -- ------------------ ---------- ------------------------------ ----------
emitter.removeAllListeners(event)
移除所有监听器:
-----------------------------------
示例代码
下面是一个简单的示例:
----- --------------- - ---------------------------- ----- ------- - --- ------------------ ------------------ -- -- - ----------------- ---- -- ---- ------------------ -- -- - ----------------- ---- -- ---- ---------------------
上面的代码会依次输出:
---- - ---- -
因为我们设置了 test 1 的权重为 60,test 2 的权重为 40,所以 test 1 先被触发。
总结
weighted-emitter 是一个带权重的事件监听器,可以让我们更加精确的控制事件的触发顺序。它有着简单易用的 API,而且非常轻量,是我们在前端开发中的一款非常有用的 npm 包。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005552681e8991b448d25be