zoukankan      html  css  js  c++  java
  • Events_附

    一、events.EventEmitter

     
        1、All objects that emit events are instances of the EventEmitter class.
        (来自:https://nodejs.org/dist/latest-v6.x/docs/api/events.html)
     
        2、EventEmitter.on("hangdle",callback); //注册事件
     
        3、EventEmitter.emit("handle"); //触发事件
     
        4、实现继承的方式
     
            var EventEmitter=require("events");
     
            (1)利用util模块的inherits()方法;
     
            function MyEmitter(){EventEmitter.call(this);}
            util.inherits(MtEmitter,EventEmitter);
     
            (2)利用ES6的class和extends关键字实现
     
            class MyEmitter extends EventEmitter {}
     
            (3)通过原型链prototype和__proto__实现
     
            function MyEmitter(){EventEmitter.call(this);}
            MyEmitter.prototype.__proto__=EventEmitter.prototype;
     
        5、示例如下: //依次使用方法A、B、C
     


    二、传参和this关键字
     
        1、示例如下: //包含this指针引用内容和参数使用及箭头函数与常规函数的区别
     
     


    三、实现异步模型 //待研究
     
        1、setImmediate(callback[,args][,...])
     
            Schedules "immediate" execution of callback after I/O events' callbacks and before timers set               by setTimeOut and setInterval are triggered.
     
        2、proces.nextTick(callback[,args][,...])
     
            It runs before any additional I/O events (including timers) fire in subsequent ticks of the event               loop.
     
        3、I/O相关有待研究...
     
        4、process.nextTick 是将异步回调放到当前帧的末尾、io回调之前,如果nextTick过多,会导致io回调不断            延后,最后callback堆积太多.
     
             setImmediate 是将异步回调放到下一帧,不影响io回调,不会造成callback 堆积.
     
        5、示例如下://注:I/O待研究....
     


     
    四、其他Evnet对象方法
     
        1、.addListener(eventName,callback);    //同.on()
     
        2、.once(eventName,callback); //执行一次
     
        3、.listener(eventName); //返回一个连接到eventName事件的监听器函数组
     
        4、setMaxListeners(n); //默认值为10,设置最大监听器数目
     
        5、removeListener(eventName,callback); //将callback函数从EventEmitter对象的eventName事件中删            除
        6、emitter.eventNames(); //返回所有已注册事件的名称
     
    All rights reserved please indicate the source if reprint---吓尿了的大肥鼠
  • 相关阅读:
    升级到virtualbox2.1.4
    gentool 工具 modulerebuild
    解决man乱码问题
    关于HyperV的Linux驱动
    使用tmpfs优化firefox
    使用gmbox下载google歌曲
    升级到xorgserver1.5时出现的问题
    windows下使用where命令
    CSS中一些渐变效果与透明
    asp.net下密码框的一些小问题
  • 原文地址:https://www.cnblogs.com/realsoul/p/5511765.html
Copyright © 2011-2022 走看看