Promise가 싫다면 우짤까..

최문길·2023년 11월 9일
3

JavascriptES6

목록 보기
22/23
post-custom-banner

요약

  • 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를 어떻게 들고 나오지?

post-custom-banner

0개의 댓글