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