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