Node.js 是否有任何方法可以获取NodeJS中的所有流程事件?
例如,不要监听如下所示的特定错误:Node.js 是否有任何方法可以获取NodeJS中的所有流程事件?,node.js,express,events,Node.js,Express,Events,例如,不要监听如下所示的特定错误: process.on('unhandledRejection',r=>{ console.error('tracing unhandledRejection:'); 控制台错误(r响应); }); 我想获取所有流程事件,然后通过配置筛选出我想要的事件。 我正在研究的目标行为: process.on('events',event=>{ 如果(事件为“unhandledRejection”){ doSomething(); } else if(事件为“uncau
process.on('unhandledRejection',r=>{
console.error('tracing unhandledRejection:');
控制台错误(r响应);
});
我想获取所有流程事件,然后通过配置筛选出我想要的事件。
我正在研究的目标行为:
process.on('events',event=>{
如果(事件为“unhandledRejection”){
doSomething();
}
else if(事件为“uncaughtException”){
doSomethingElse();
}
否则{
忽略();
}
});
参考资料:在文档中,流程是一个扩展“EventEmitter”的类。您似乎无法列出或访问所有“进程”事件 基本上,EventEmitter类有一个.listeners()方法,该方法列出了所有打开的侦听器,但是如果希望在.listeners()方法上添加侦听器,则需要先添加它 如果您真的想使用“自定义”和“丑陋”方法,可以执行以下操作:
const events = ["beforeExit", "rejectionHandled", "uncaughtException", "exit"]; // list all the process events here...
events.forEach((eventName) => {
console.log('listening on ', eventName);
process.on(eventName, (...args) => {
console.log('event ' + eventName + ' was called with args : ' + args.join(','));
});
});
// quit process with exit code for example
process.exit(5);
// will be print :
// listening on beforeExit
// listening on rejectionHandled
// listening on uncaughtException
// listening on exit
// event exit was called with args : 5
对于流程事件,您可以在此处找到它们: