zoukankan      html  css  js  c++  java
  • NodeJS3-3基础API----event(事件触发器)

    1.基础(on)


    // 如果像对象享有事件能力就要集成EventEmitter const EventEmitter = require('events') //集成EventEmitter类 class CustomEvent extends EventEmitter{ } // 实例化对象 const ce = new CustomEvent() //绑定一个事件名 ce.on('test',()=>{ console.log('this is a test'); }) setInterval(()=>{ ce.emit('test') },500)

    运行效果就是不断的执行this is a test

    2.传一些参数,基础信息

    const EventEmitter = require('events')
    
    class CustomEvent extends EventEmitter{}
    const ce = new CustomEvent() 
    
    ce.on('error',(err,time)=>{
        console.log(err);
        console.log(time);
        
    });
    
    ce.emit('error',new Error('oops!'),Date.now())

    3.执行一次就好了 once(下面即使是像之前on那样操作,也就是每个500毫秒执行一次,可是运行之后也就执行一次而已)

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

    4.移除工作,绑定了一些事件在某些场景下需要移除掉(removeListener  或者 removeAllListener)

    const EventEmitter = require('events')
    class CustomEvent extends EventEmitter{}
    function fn1(){
        console.log('fn1');
    }
    function fn2(){
        console.log('fn2');
    }
    const ce = new CustomEvent()
    ce.on('test',fn1)
    ce.on('test',fn2)
    setInterval(()=>{
        ce.emit('test')
    },500)
    setTimeout(()=>{
        // ce.removeListener('test',fn2)
        // ce.removeListener('test',fn1)
        //移除所有事件名的事件
        ce.removeAllListeners('test')
    },1500)
  • 相关阅读:
    2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 (B,F,L,M)
    Coderfroces 862 C. Mahmoud and Ehab and the xor
    [CQOI 2015] 任务查询系统
    [POI 2014] Couriers
    [POJ 2104] K-th Number
    [模板] 可持久化数组
    [AHOI 2006] 上学路线
    [SCOI2009] 生日礼物
    [BZOJ 3436] 小K的农场
    [USACO2007 Demo] Cow Acrobats
  • 原文地址:https://www.cnblogs.com/chorkiu/p/11419216.html
Copyright © 2011-2022 走看看