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---吓尿了的大肥鼠
  • 相关阅读:
    FFmpegTool 这个是很早以前写得ffmpeg c99部分转C89工具代码
    mmsplayer V2 for IOS 完成. V2 所有汇总
    关于mmsplayer一些电台不支持播放问题说明
    libmpg123 解码库用法
    [置顶] mmsplayer V2 for IOS 完成. V2 所有汇总
    使用lipo合并iPhone模拟器和真机的静态类库
    vbs编程
    Adobe reader查阅PDF文件无法显示中文
    常去的下载网站
    .Net程序设计快速入门——分页设计篇
  • 原文地址:https://www.cnblogs.com/realsoul/p/5511765.html
Copyright © 2011-2022 走看看