Promise被拒绝,但是又没有拒绝处理函数,node.js是不允许的。除非,设置了监听函数unhandledRejection
,会监听到一个Promise被拒绝,且没有拒绝处理函数时执行。
相应的,提供另一个监听函数rejectionHandled
当一个Promise,没有直接绑定拒绝处理函数,却在之后,执行了拒绝处理函数。就会执行它。
process.on("unhandledRejection", function (reason, promise) {
console.log('被拒绝了,并且没有处理。拒绝原因:'+reason.message)
})
process.on('rejectionHandled', function (promise) {
console.log('处理了')
})
let reject1 = Promise.reject(new Error('服务端异常1'));
let reject2 = Promise.reject(new Error('服务端异常2'))
setTimeout(() => {
reject1.catch((err) => {
console.log('正在处理1。。。原因:' + err.message)
})
}, 1000);
setTimeout(() => {
reject2.catch((err) => {
console.log('正在处理2。。。原因:' + err.message)
})
}, 3000);
执行结果:
被拒绝了,并且没有处理。拒绝原因:服务端异常1
被拒绝了,并且没有处理。拒绝原因:服务端异常2
正在处理1。。。原因:服务端异常1
处理了
正在处理2。。。原因:服务端异常2
处理了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。