我只是在节点中使用async / await,似乎如果你正在等待一个承诺并且它被拒绝它会抛出。我想知道是否有一个更清洁的模式,而不是回去尝试/捕捉我不知道的块?
async function foo() {
const val = await Promise.reject();
}
答案 0 :(得分:1)
try
/ catch()
是更清洁模式,对齐同步和异步错误处理:
(目前适用于Chrome和Firefox开发人员版)
function a(heads) {
if (heads) throw new Error("Synchronous error");
}
async function b() {
await Promise.resolve();
throw new Error("Asynchronous error");
}
async function main(heads) {
try {
a(heads);
await b();
} catch (e) {
console.log(e.message);
}
}
main(false); // Synchronous error
main(true); // Asynchronous error