阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js events 事件触发器

      Node.js events 事件触发器

      大多数 Node.js 核心 API 构建于异步事件驱动的架构;

      node 采用了事件驱动机制,而EventEmitter 就是node实现事件驱动的基础。在EventEmitter的基础上,node 几乎所有的模块都继承了这个类,以实现异步事件驱动架构。

      继承了EventEmitter的模块,拥有了自己的事件,可以绑定/触发监听器,实现了异步操作。

      EventEmitter是node事件模型的根基,由EventEmitter为基础构建的事件驱动架构处处体现着异步编程的思想,因此,我们在构建node程序时也要遵循这种思想。

      EventEmitter实现的原理是观察者模式,这也是实现事件驱动的基本模式。

      例如:对象objEmitter会触发命名事件来调用函数 fnListener

      • objEmitter称触发器,Emitter
      • fnListener称监听器,Listener

      例如下面的node核心模块事件,

      var events = require('events');
      var eventEmitter = new events.EventEmitter();
      //创建事件处理程序:
      var myEventHandler = function () {
          console.log('Hello axihe.com!');
      };
      
      //将事件处理程序分配给事件:
      eventEmitter.on('scream', myEventHandler);
      
      //触发事件:
      eventEmitter.emit('scream');
      

      node events

      所有能触发事件的对象都是 EventEmitter 类的实例。 这些对象有一个 eventEmitter.on() 函数,用于将一个或多个函数绑定到命名事件上。 事件的命名通常是驼峰式的字符串。

      当 EventEmitter 对象触发一个事件时,所有绑定在该事件上的函数都会被同步地调用

      例子,一个简单的 EventEmitter 实例,绑定了一个监听器。

      const EventEmitter = require('events');
      class MyEmitter extends EventEmitter {}
      
      const myEmitter = new MyEmitter();
      myEmitter.on('event', () => {
        console.log('触发事件');
      });
      myEmitter.emit('event');
      

      目录
      本文目录
      目录