zoukankan      html  css  js  c++  java
  • nodejs笔记--Events篇(二)

    常用事件

    /*
    调用events模块,获取events.EventEmitter对象 */ var EventEmitter = require('events').EventEmitter; var events = new EventEmitter(); /* EventEmitter.on(event, listener) 为事件注册一个监听 参数1:event 字符串,事件名 参数2:回调函数 */ events.on('some_events', function(foo, bar) { console.log("第1个监听事件,参数foo=" + foo + ",bar="+bar ); }); console.log('第一轮'); events.emit('some_events', 'Wilson', 'Zhong'); // 返回true console.log('第二轮'); events.emit('some_events', 'Wilson', 'Z'); events.on('whatName',function(name){ console.log('My name is '+name); }); events.emit('whatName','finder');
    其它事件
    
    emitter.addListener(event, listener)
    emitter.on(event, listener)
    emitter.once(event, listener)
    emitter.removeListener(event, listener)
    emitter.removeAllListeners([event])
    emitter.setMaxListeners(n)
    EventEmitter.defaultMaxListeners
    emitter.listeners(event)
    emitter.emit(event[, arg1][, arg2][, ...])
    Class Method: EventEmitter.listenerCount(emitter, event)
    特殊的事件Error
    
    引用自Node.js开发指南:EventEmitter 定义了一个特殊的事件 error,它包含了“错误”的语义,我们在遇到 异常的时候通常会发射 error 事件。当 error 被发射时,EventEmitter 规定如果没有响 应的监听器,Node.js 会把它当作异常,退出程序并打印调用栈。我们一般要为会发射 error 事件的对象设置监听器,避免遇到错误后整个程序崩溃
    
    事件的继承
    var util = require("util");
    var events = require("events");
    
    function MyStream() {
        events.EventEmitter.call(this);
    }
    
    util.inherits(MyStream, events.EventEmitter);
    
    MyStream.prototype.write = function(data) {
        this.emit("data", data);
    }
    
    var stream = new MyStream();
    
    console.log(stream instanceof events.EventEmitter); // true
    console.log(MyStream.super_ === events.EventEmitter); // true
    
    stream.on("data", function(data) {
        console.log('Received data: "' + data + '"');
    })
    stream.write("It works!"); // Received data: "It works!"
  • 相关阅读:
    SqlLite的使用
    asp.net批量上传图片带进度条显示
    对于GridView控件的RowDataBount事件的错误理解
    关于SQL中时间对比
    关于使用触发器时使用@@identity的问题
    关于Treeview控件如何给每个节点加js脚本的方法
    /etc/init.d/functions详解
    如何解决安装DreamWeaver8 时候提示“无法将数值写入键/SOFTWARE/classes/.shtml”
    [请教]关于超大数据量网站的数据搜索和分页的实现方法
    svchost.exe[900]中发生未处理的win32异常
  • 原文地址:https://www.cnblogs.com/liubei/p/nodejs_2.html
Copyright © 2011-2022 走看看