event handle for wechat
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
dist
src
test
.gitattributes
.gitignore
.travis.yml
README.md
package-lock.json
package.json
rollup.config.js

README.md

nsevent

有命名空间的事件监听器 - event emitter with namespace

安装和使用

npm i nsevent --save
const nsevent = require('nsevent');
// 浏览器
<script src="dist/nsevent.umd.js"></script>

on(eventName, fn, namespace)

参数 必选 说明
eventName 监听事件名
fn 回调函数
namespace 命名空间
NSEvent.on('add', (a, b) => {
  console.log(a, b);
});

NSEvent.on('add', (a, b) => {
  console.log(a, b, 'ns');
}, 'ns');

// 1, 2
// 1, 2, 'ns'
NSEvent.emit('add', a, b);  

once(eventName, fn)

参数 必选 说明
eventName 监听事件名
fn 回调函数
NSEvent.once('add', (a, b) => {
  console.log(a, b);
});

NSEvent.emit('add', 1, 2);      // 1, 2
NSEvent.emit('add', 1, 2);      // nothing

emit(eventName, arg1, arg2, ..., object)

参数 必选 说明
eventName 监听事件名
arg[1,2,3...] 传递给回调函数的值
object { 最后一个传递对象,ns: ['ns'] } 可以指定命名空间触发事件
NSEvent.on('fire', () => {
  console.log('fire ns');
}, 'ns');

NSEvent.on('fire', () => {
  console.log('fire ns2');
}, 'ns');

NSEvent.on('fire', () => {
  console.log('fire');
});

NSEvent.emit('fire');     // fire ns, fire ns2, fire
console.log("======");
NSEvent.emit('fire', 1, 2, { ns: [] });     // nothing
NSEvent.emit('fire', 1, 2, { ns: ['ns'] }); // fire ns, fire ns2

off(eventName, [string|function|array])

参数 必选 说明
eventName 监听事件名
string function array
string 指定命名空间解绑
function 指定函数解绑
array 通过数组指定命名空间或者函数解绑
const NSEvent = require('../dist/nsevent.cjs');

NSEvent.on('fire', () => {
  console.log('fire ns');
}, 'ns');

NSEvent.on('fire', () => {
  console.log('fire ns');
}, 'ns');

NSEvent.on('fire', () => {
  console.log('fire1');
}, 'ns1');

NSEvent.emit('fire');   // fire ns, fire ns, fire1
console.log('==========');
NSEvent.off('fire', ['ns']);
NSEvent.emit('fire');   // fire1
console.log('==========');
NSEvent.off('fire', 'ns1');
NSEvent.emit('fire');   // none