Teal TealUI

事件util/events

提供事件管理对象。

基本用法
API
EventEmitter 类

基本用法

事件是一种设计模式。 程序可以通过触发事件的方式通知外部。 对此通知感兴趣的对象可以订阅事件并执行相应的回调函数。 通过事件的设计模式可以将触发事件和实际处理事件的逻辑完全分开,提升代码的独立性。

import EventEmitter from "util/events";

var ee = new EventEmitter();

// 绑定事件。
ee.on("hi", function (name) {
    console.log(name + " 来问好了");
});

// 触发事件。
ee.emit("hi", "小黑");
另参考

Node.js: Event

API

EventEmitter 类

表示一个事件触发器。

方法 描述
on(eventName, eventHandler)(eventName:string, eventHandler:Function):this

添加一个事件。

参数 类型 描述 默认值
eventName* string
eventHandler* Function

返回值

类型:this

示例

var ee = new EventEmitter();
ee.on("error", data => console.log(data));    // 绑定 error 事件
ee.emit("error", "hello");                    // 触发 error 事件,输出 hello

添加一个事件。

off(...)(eventName?:string, eventHandler?:Function):this

删除一个或多个事件。

参数 类型 描述 默认值
eventName string
eventHandler Function

返回值

类型:this

示例

var fn = data => console.log(data);
var ee = new EventEmitter();
ee.on("error", fn);                       // 绑定 error 事件
ee.off("error", fn);                      // 解绑 error 事件
ee.emit("error", "hello");                // 触发 error 事件,不输出内容

删除一个或多个事件。

emit(eventName, ...)(eventName:string, ...eventArgs:any[]):boolean

触发一个事件。

参数 类型 描述 默认值
eventName* string
eventArgs any[]

返回值

类型:boolean

如果已执行一个或多个监听器则返回 true,否则返回 false。

示例

var ee = new EventEmitter();
ee.on("error", data => console.log(data));    // 绑定 error 事件
ee.emit("error", "hello");                    // 触发 error 事件,输出 hello

触发一个事件。