经常看到
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();