async 함수는 Promise 를 반환한다.
async 함수의 기본 동작
- async 키워드로 선언된 모든 함수는 자동으로 Promise 를 반환한다.
- 이는 함수 내부에서 명시적으로 Promise 를 반환하지 않아도 마찬가지임!
async function returnString(){
return 'hello';
}
// 실제로는 Promise.resolve("hello"); 를 반환한다.
만약 예외가 발생하면?
async function throwError(){
throw new Error("Something went wrong");
}
// Promise.reject(new Error("Something went wrong")); 반환한다.
await 키워드와의 관계
- await 은 오로직 async 함수 내에서만 사용 가능함.
- await 은 Promise 가 settled 상태가 될 때까지 함수의 실행을 일시 중단한다.