Event 类

Posted 沿着路走到底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Event 类相关的知识,希望对你有一定的参考价值。

1

class Event 
  events = 

  constructor(eventName) 
    this.eventName = eventName
  

  on(cb)  
    if(!this.events[this.eventName])
        this.events[this.eventName] = [];
    
    this.events[this.eventName].push(cb);
  

  emit(...args)  
    if(!this.events[this.eventName])
        return;
    
    this.events[this.eventName].forEach(item => 
        item.call(this, ...arguments);
    );
  

  off(cb) 
    if(!this.events[this.eventName])
      return ;
    
    this.events[this.eventName] = this.events[this.eventName].filter(item=>item!=cb);
  


// 以下是测试
const exampleEvent = new Event('example')
const callback1 = (a, b) => 
  console.log(a, b)

const callback2 = (a, b) => 
  console.log(b, a)

exampleEvent.on(callback1)
exampleEvent.on(callback2)
exampleEvent.emit(1, 2)
// 1,2
// 2,1
exampleEvent.off(callback1)
exampleEvent.emit(1, 2)
// 2,1

1

以上是关于Event 类的主要内容,如果未能解决你的问题,请参考以下文章

Event 类

Event 类

gem5中event queue运行原理机制详细分析

如何在 matplotlib 中为交互式绘图的 onclick(event) 函数创建类?

Spring Boot 2.1 缺少多个 org.hibernate.jpa.event 类

ReactiveSwift源码解析 Event与Observer代码实现