我需要在脚本中为未处理的promise异常定义一个处理程序。我正在使用我在另一个模块中定义并导入的异常处理程序。节点documentation表示"使用以下参数调用侦听器函数",错误原因和承诺。如果我编写命令将我的异常处理程序与unhandledRejection
事件关联起来,如下所示:
process.on('unhandledRejection', logPromiseException(error, promise));
我收到了参考错误:
ReferenceError: error is not defined
如果我写这样的函数:
process.on(
'unhandledRejection',
(error, promise) => logPromiseException(error, promise)
);
一切都没问题。有人能帮助我理解为什么吗?
答案 0 :(得分:1)
第二个参数应该是一个函数回调,该节点将调用并传递错误,承诺
process.on('unhandledRejection', function(err,promise){...});
这是一个简单的回调模式,只是为了演示可能在secene背后发生的什么
process.on=function(event,fn){
// assume we have err and promise variable already
if(event==='unhandledRejection')
// execute call back
fn(err,promise);
}