节点asynchronous/等待 – 我需要尝试/赶上?

我只是玩节点asynchronous/等待,似乎如果你正在等待一个承诺,它被拒绝,它抛出。 我想知道是否有一个更清洁的模式比回到尝试/ catch块,我不知道?

async function foo() { const val = await Promise.reject(); } 

try / catch() 清理模式,alignment同步和asynchronouserror handling:

(目前在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