async
함수가 예외를 동 기적으로 throw하는 경우 어떻게됩니까?비동기 함수의 동기 예외
예 :
async function whatHappen() {
throw new BombError()
// no "await" here
}
try {
whatHappen().catch(() => console.error('rejected'))
} catch (e) {
console.error('thrown')
}
내가 바벨에서이 예제를 실행했는데 throw
가 자동으로 잡아서 거부 약속로 번역, 그래서 예를 콘솔에 "rejected"
를 기록합니다 것 같다.
그러나 이것이 실제 사양과 JavaScript 엔진에서 구현되는 방법을 반영합니까? 나는 technical proposal을 읽으려고했지만, 스펙은 분명히 언어 사용자가 아니라 언어 구현자를 대상으로하고있다.
async
함수를 사용하여 에 항상을 반환하거나 약속을 동 기적으로 throw 할 수있는 상황이 있습니까? await
없이 비동기 함수를 호출하면 try
/catch
블록에 래핑되어야하는 시나리오가 있습니까?
감사합니다. 비동기 함수 제안서에서 링크 된 지연 함수 strawman은 실제로 예외가 항상 거부 된 약속을 초래한다고 말함으로써이를 분명히합니다. 제안서의 언어 자체는 나에게 조금 모호했다. –