티스토리 뷰

Javascript

async, await 에 대하여...

피치크러스트 2021. 4. 5. 14:12

1. async, await는 promise 객체를 기반으로 리턴하는 함수이다.

function p(ms){
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(ms)
    }, ms);
  });
}

p(1000).then(ms => {
  console.log(`${ms} ms 후에 실행됩니다.`);
});

 

1-1. Promise 객체를 리턴하는 함수를 await 로 호출하는 방법.

const ms = await p(1000);
console.log(`${ms} ms 후에 실행됩니다.`);

 

1-1 코드는 아래와 같은 에러가 생긴다.

SyntaxError: await is only valid in async fuction
=> async 함수안에서만 await 가 유효하단 의미.

 

2. await 를 사용하는 경우엔 항상 async 함수 안에서 사용되어야 한다.

async function main(){
  const ms = await p(1000);
  console.log(`${ms} ms 후에 실행됩니다.`);
};

 

3. resoluve -> try, reject -> catch 안에다가 처리한다.

async function main(){
  try{ // 성공 시
    const ms = await p(1000);
    console.log(`${ms} ms 후에 실행됩니다.`)
  },
  catch(err){ // 실패 시
    console.log(err)
  }
}

 

댓글
공지사항
최근에 올라온 글