【发布时间】:2018-12-09 06:32:33
【问题描述】:
我有一个错误:(node:6186) UnhandledPromiseRejectionWarning: Unhandled Promise Rejection (rejection id: 1):threep (节点:6186)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。 -------- 那些 ========= 两个 CaughtCathchError 三 (node:6186) PromiseRejectionHandledWarning: Promise 拒绝被异步处理(rejection id: 1) 我正在按嵌套顺序使用我的 3 个 promise 函数。 p1,p2,p3- 是我的承诺函数,如下所示。 我也尝试在所有 p1、p2、p3 函数中添加 promise reject,但它仍然是一样的
enter code here
var p1 = new Promise(function (resolve, reject) {
setTimeout(function () {
// resolve('ones')
resolve('ones')
}, 9000)
})
var p2 = new Promise(function (resolve, reject) {
setTimeout(function () {
// throw new Error('eeeee');
//reject('two')
resolve('two')
}, 1000)
})
var p3 = new Promise(function (resolve, reject) {
setTimeout(function () {
reject('three')
}, 4000)
})
p1.then(function(result){
console.log("--------", result)
// return p2.then(function(res){console.log(res)}).catch(function(err){console.log(err)})
return p2
}).then(function(p2result){
console.log("=========", p2result)
return p3;
}).then(function(p3result){
console.log('*********', p3result)
}).catch(function(err){
console.log("CaughtCathchError", err)
})
【问题讨论】:
-
看到那行
p3 = new Promise等?你没有处理那个拒绝 -
这基本上是未处理拒绝检测逻辑中的一个限制,即使拒绝确实以
.catch()结尾,它也会报告未处理拒绝。
标签: javascript node.js promise