- async function은 resolve만 내뱉는다.
- async 안에서만 await쓸 수 있다.
- async 함수 안에서 promise로 reject함수가 호출되면,
await promise 는 에러가 난다 . -> 밑에 코드 실행 안됨
그래서
try { ... } catch { ... } 구문을 사용한다.
//try{} catch{}
try {
var 결과 = await promise // await은 그냥 성공시만 사용된다고 보셈
} catch(e) {
// 에러나 안되면 여기 코드
//e는 에러가나서 reject(파라미터), reject의 파라미터가 e로 들어감
}
// 따라서 --------------------------------------------
async function 함수(){
// 무언가 대단한 수행을 하는 promise 임!!
var promise = new Promise((resolve,reject)=>{
if(성공시){
resolve(성공값)
} else {
reject(실패값)
}
})
// try안에서 promise함수를 호출해서 일단 try해본다.
try {
var 결과 = await promise; <- promise안에 성공값이 들어있음
return 결과
} catch(error) {
error가 reject의 인자값으로 실패값을 가지고 있음
}
}
const 결과값 = 함수();
//try 구문에서 promise가 성공하면 결과 가 return 되어 결과값 변수에 저장된다.
그런데 실패해서 catch 구문에 있는 error를 어떻게 들고 나오지?