
async
async는 asynchronous의 줄임말로 비동기를 의미한다
- async는 함수 안에 비동기적으로 실행될 부분이 있음을 의미한다
await
await은 프로미스 객체를 리턴하는 코드 앞에 붙어서 프로미스 객체가 리턴될 때(Promise 객체의 상태가 fulfilled 혹은 rejected 되는 때)까지 기다리는 역할을 한다
- await이 붙은 코드의 Promise 객체가 리턴된 이후 다음 줄의 코드가 실행된다
async 함수가 리턴하는 Promise 객체
1) Promise 객체를 리턴하는 경우
- Promise 객체와 동일한 상태와 작업 성공 결과를 가진 Promise 객체를 리턴한다
- (그냥 해당 Promise 객체를 리턴한다)
2) Promise 객체 이외의 값을 리턴하는 경우
- 숫자, 문자열, 일반 객체 등을 리턴하는 경우이다
- fulfilled 상태이면서, 리턴된 값을 작업 성공 결과로 가진 Promise 객체를 리턴한다
3) 아무 값도 리턴하지 않는 경우
- fulfilled 상태이면서, undefined를 작업 성공 결과로 가진 Promise 객체를 리턴한다
4) async 함수 내부에서 에러가 발생했을 때
- rejected 상태이면서, 해당 에러 객체를 작업 실패 결과로 가진 Promise 객체를 리턴한다