ノードで async/await をいじっているだけですが、約束を待っていて拒否された場合、それがスローされるようです。私が気付いていない try/catch ブロックに戻るよりもクリーンなパターンがあるかどうか疑問に思っていますか?
async function foo() {
const val = await Promise.reject();
}
ノードで async/await をいじっているだけですが、約束を待っていて拒否された場合、それがスローされるようです。私が気付いていない try/catch ブロックに戻るよりもクリーンなパターンがあるかどうか疑問に思っていますか?
async function foo() {
const val = await Promise.reject();
}
try
/catch()
は、同期エラー処理と非同期エラー処理を揃えた、よりクリーンなパターンです。
(現時点では Chrome と Firefox Developer Edition で動作します)
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