hubring

async/await 본문

Javascript/PureJS

async/await

Hubring 2020. 7. 8. 00:58

 

async/await

Promise를 더욱 쉽게 사용할 수 있도록 해주는 ES8문법.

이 문법을 사용하려면 함수의 앞부분에 async 키워드를 추가하고,
해당 함수 내부에서 Promise 앞부분에 await 키워드를 사용한다.
이렇게 하면 Promise가 끝날 때까지 기다리고, 결과 값을 특정 변수에 담을 수 있다.

function increase(number){

  const promise = new Promise((resolve, reject)=>{
    setTimeout(()=>{
      const result = number+10;
      if(result > 50){
        const e = new Error('NumberTooBig');
        return reject(e);
      }
      resolve(result);
    }, 1000);
  });

  return promise;
}

async function runTasks(){

  try{
    let result = await increase(0);
    console.log(result);
    result = await increase(result);
    console.log(result);
    result = await increase(result);
    console.log(result);
    result = await increase(result);
    console.log(result);
    result = await increase(result);
    console.log(result);
    result = await increase(result);
  }catch(e){
    console.log(e);
  }
}

 

아래 예제에서는 return 구문에 await 구문이 없다는 것에 주목하자. 이는 async function의 반환값이 암묵적으로 Promise.resolve로 감싸지기 때문이다.

async function getProcessedData(url) {
  let v;
  try {
    v = await downloadData(url); 
  } catch (e) {
    v = await downloadFallbackData(url);
  }
  return processDataInWorker(v);
}

 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/async_function

 

async function

async function 선언은 AsyncFunction객체를 반환하는 하나의 비동기 함수를 정의합니다. 비동기 함수는 이벤트 루프를 통해 비동기적으로 작동하는 함수로, 암시적으로 Promise를 사용하여 결과를 반환

developer.mozilla.org

 

'Javascript > PureJS' 카테고리의 다른 글

Promise  (0) 2020.07.08