Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

一个简单的 EventEmitter,可在浏览器中使用,帮助你实现事件的订阅和发布。

NotificationsYou must be signed in to change notification settings

mqyqingfeng/EventEmitter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

介绍

一个简单的 EventEmitter,可在浏览器中使用,帮助你实现事件的订阅和发布。

依赖

原生 JavaScipt 实现,无依赖。

大小

压缩后 1KB,gzip 压缩后更小。

使用

<scriptsrc="path/eventEmitter.js"></script>

或者

importeventEmitterfrom'path/eventEmitter.js'

API

varemitter=newEventEmitter();

on

添加一个事件监听器,支持链式调用

emitter.on(eventName,listener)
  • eventName 事件名称
  • listener 监听器函数

off

删除一个事件监听器,支持链式调用

emitter.off(eventName,listener)
  • eventName 事件名称
  • listener 监听器函数

once

添加一个只能触发一次的事件监听器,支持链式调用

emitter.once(eventName,listener)
  • eventName 事件名称
  • listener 监听器函数

emit

触发事件,支持链式调用

emitter.emit(eventName,args)
  • eventName 事件名称
  • arg 数组形式,传入事件监听器的参数

allOff

删除某个事件或者所有事件

emitter.allOff(eventName)
  • eventName 事件名称 如果不传,则删除所有事件

示例代码

添加、触发、删除事件

varemitter=newEventEmitter();functionhandleOne(a,b,c){console.log('第一个监听函数',a,b,c)}functionhandleSecond(a,b,c){console.log('第二个监听函数',a,b,c)}functionhandleThird(a,b,c){console.log('第三个监听函数',a,b,c)}emitter.on("demo",handleOne).once("demo",handleSecond).on("demo",handleThird);emitter.emit('demo',[1,2,3]);// => 第一个监听函数 1 2 3// => 第二个监听函数 1 2 3// => 第三个监听函数 1 2 3emitter.off('demo',handleThird);emitter.emit('demo',[1,2,3]);// => 第一个监听函数 1 2 3emitter.allOff();emitter.emit('demo',[1,2,3]);// nothing

支持在监听器函数中删除未执行的某个事件

varemitter=newEventEmitter();functionhandleOne(a,b,c){console.log('第一个监听函数',a,b,c)emitter.off("demo",handleSecond)}functionhandleSecond(a,b,c){console.log('第二个监听函数',a,b,c)}functionhandleThird(a,b,c){console.log('第三个监听函数',a,b,c)}emitter.on("demo",handleOne).on("demo",handleSecond).on("demo",handleThird);emitter.emit('demo',[1,2,3]);// => 第一个监听函数 1 2 3// => 第三个监听函数 1 2 3

About

一个简单的 EventEmitter,可在浏览器中使用,帮助你实现事件的订阅和发布。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp