nodejs 中自定义事件

经常看到

req.on('error', function(){...}); 

这种代码。

在nodejs中,可以使用 EventEmitter来实现。

具体的关键词有如下几个:

var reqEvent = new EventEmitter();
reqEvent.on(ev, cb);
reqEvent.emit('error');

下面是这个实现方法:

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

var req = {
    on: function (ev, cb) {
        reqEvent.on(ev, cb);
    },
    run: function () {
        if ("fire Error") {
            reqEvent.emit('error'); //出错了
        }

        reqEvent.emit('ex'); //前任
        console.log('我是正房');
        reqEvent.emit('done'); //小三
    }
}


req.on('error', function () {
    console.log('唉呀,出错了!');
});
req.on('ex', function () {
    setTimeout(function () {
        console.log('我是前任,但我在剧本中出现晚于正房 1 秒钟。');
    }, 1000);
});
req.on('done', function () {
    setTimeout(function () {
        console.log('我是小三,但我在剧本中出现晚于正房 2 秒钟。');
    }, 2000);
});


//启动
req.run();
原文地址:https://www.cnblogs.com/cloudbeer/p/3556146.html