博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
订阅发布模式eventEmiter
阅读量:5113 次
发布时间:2019-06-13

本文共 951 字,大约阅读时间需要 3 分钟。

// 订阅发布模式class EventEmitter {  constructor() {    this._events = {};  }  on(name, callback) {    if (this._events[name]) {      this._events[name].push(callback);    } else {      this._events[name] = [callback];    }  }  emit(name) {    if (this._events[name]) {      this._events[name].forEach(cb => cb());    }  }  remove(name, callback) {    if (this._events[name]) {      this._events[name] = this._events[name].filter(cb => cb !== callback);    }  }  once(name, callback) {    const fn = () => {      callback();      this.remove(name, fn);    };    this.on(name, fn);  }}const event = new EventEmitter();const func1 = () => {  console.log('func1');};const func2 = () => {  console.log('func2');};const func3 = () => {  console.log('func3');};event.on('datas', func1);event.on('datas', func2);event.once('datas', func3);event.emit('datas');event.remove('datas', func1);event.emit('datas');

 

转载于:https://www.cnblogs.com/shangyueyue/p/11052138.html

你可能感兴趣的文章
MFC修改窗口无标题和标题信息,修改执执行文件图标
查看>>
POJ 2117 Electricity 割点 Tarjan算法
查看>>
静态链表
查看>>
程序流程图画法复习
查看>>
if not用法
查看>>
xamarin.forms 主明细界面
查看>>
字符串的碎片整理。。。
查看>>
python pymysql安装
查看>>
再谈组合模式
查看>>
两分钟学会Android平台NDK编程(无须Eclipse和cygwin,可使用命令行打包多个so)
查看>>
QT布局
查看>>
Linux字符设备驱动
查看>>
移动端页面开发通用问题解决方案
查看>>
关于Python编程的一些问答
查看>>
第一次
查看>>
windows下ch340 usb转串口芯片的驱动从哪里下载?
查看>>
CodeForces - 732F Tourist Reform
查看>>
洛谷 P1852 [国家集训队] 跳跳棋
查看>>
[Lydsy1806月赛] 最长公共子序列
查看>>
hdu5443 The Water Problem(水)
查看>>