美文网首页饥人谷技术博客
nodejs 基础模块 events

nodejs 基础模块 events

作者: 辉夜乀 | 来源:发表于2017-12-07 09:18 被阅读17次

    events 文档

    events

    绑定事件用 on,触发事件用 emit

    image

    例子

    image
    const EventEmitter = require('events');
    
    class CustomEvent extends EventEmitter {}
    
    const ce = new CustomEvent();
    
    ce.on('test', () => {
      console.log('this is a test!');
    });
    
    setInterval(() => {
      ce.emit('test');
    }, 500);
    
    image

    传入参数,

    定义报出错误的例子

    image
    const EventEmitter = require('events');
    
    class CustomEvent extends EventEmitter {
    }
    
    const ce = new CustomEvent();
    
    ce.on('test', () => {
      console.log('this is a test!');
    });
    
    ce.emit('test');
    
    ce.on('error', err => {
      console.log(err);
    });
    
    ce.emit('error', new Error('boom!'));
    
    image

    传多个参数

    image

    只触发一次

    once 只触发一次

    image
    const EventEmitter = require('events');
    
    class CustomEvent extends EventEmitter {
    }
    
    const ce = new CustomEvent();
    
    ce.once('once', () => {
      console.log('This is test once');
    });
    
    setInterval(() => {
      ce.emit('once');
    }, 500);
    
    image

    移除事件

    removeListener 移除事件

    image
    const EventEmitter = require('events');
    
    class CustomEvent extends EventEmitter {
    }
    
    const ce = new CustomEvent();
    
    ce.on('test', fn1);
    ce.on('test', fn2);
    
    function fn1() {
      console.log('fn1');
    }
    
    function fn2() {
      console.log('fn2');
    }
    
    setInterval(() => {
      ce.emit('test');
    }, 500);
    
    setTimeout(() => {
      ce.removeListener('test', fn1);
      ce.removeListener('test', fn2);
    }, 1500);
    
    image

    相关文章

      网友评论

        本文标题:nodejs 基础模块 events

        本文链接:https://www.haomeiwen.com/subject/rsorixtx.html