【管子先生的Node之旅·13】Node中的JavaScript(三)

事件

在 Node 中如何像浏览器中的 JavaScript 一样去定义和触发事件的呢?为此,Node 暴露了Event EmitterApi,该API上定义的 on ,emit 和 removeListener 方法,可以为我们提供这些服务。他们以process.EventEmitter形式暴露出来:

    var EventEmitter = require('events').EventEmitter;
    var event = new EventEmitter();
    // 为指定事件注册一个监听器
    event.on('Animal', function(name) {
       console.log('我看到了' + name);
    });
    // 触发监听器
    event.emit('Animal', '单身狗');

执行结果:

image.png

这个 API 相比 DOM 下的更简洁很多,Node 中使用,你也可以方便的添加到自己的类里面:

    var EventEmitter = require('events').EventEmitter;

    function Animal() {};

    Animal.prototype.__proto__ = EventEmitter.prototype;

    var animal = new Animal();
 
    animal.on('a', function(name) {
        console.log('此次进来的是:' + name);
    })

    animal.emit('a', '程序猿');

执行结果:

image.png

如果你只想某个事件被触发一次,可以采用下面这个方法:

    var EventEmitter = require('events').EventEmitter;
    var event = new EventEmitter();

    event.once('Animal', function(name) {
        console.log('我看到了' + name);
    });

    event.emit('Animal', '单身狗');
    event.emit('Animal', '铲屎官');

执行结果:

image.png

BUFFER

buffer 是一个表示固定内存分配的对象(也就是说,你要放东西前,先把位置腾出来),它就好比是一个由八位字节元素组成的数据,可以有效的在 JavaScript 中表示二进制数据。

    //先创建一个空间
    var h = new Buffer(256);
    //写入数据
    h.write('程序猿');
    //读取数据
    h.toString();
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容