Throw statements inside an async function are essentially a type of return statement. They won't bubble up.
The following two functions are essentially identical:
async function foo() {
throw new Error();
}
async function bar() {
return Promise.reject(new Error());
}
@jonaskello What are your thoughts on potentially making this a default setting?