EventEmitter定义了一个特殊的事件error,它包含了“错误”的语义。
当我们遇到异常的时候通常会发射error事件。当error被发射时,EventEmitter规定如果没有响应的监听器,node.js会把它当做异常,提出程序并打印调用栈。
我们一般要为发射error事件的对象设置监听器,避免遇到错误后整个程序崩溃,例如:
var events = require('events');
var emitter = new events.EventEmitter();
emitter.emit('error');
运行时会显示以下错误:
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Uncaught, unspecified 'error' event.
at EventEmitter.emit (events.js:50:15)
at Object.<anonymous> (/home/byvoid/error.js:5:9)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)