0
无法理解为什么行为不同。 在这个版本中一切正常:奇怪的未处理承诺拒绝
const debug = require("debug")("m");
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
reject("promise rejected");
}, 1000);
});
promise.then(
v => {
debug("resolve", v);
},
e => {
debug("reject", e);
},
);
把一个catch处理程序,而不是拒绝处理程序:
const debug = require("debug")("m");
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
reject("promise rejected");
}, 1000);
});
promise.then(v => {
debug("resolve", v);
});
promise.catch(e => {
debug("catch: ", e);
})
的工作方式相同,但警示的NodeJS UnhandledPromiseRejectionWarning。如何理解这一点?
谢谢。我在“Promises/A + spec”中找到:2.2.7.4如果onRejected不是一个函数,并且promise1被拒绝,promise2必须被拒绝,原因与promise1相同。 – tilin