Java Script

Growing_HJ·2024년 8월 12일

일기장

목록 보기
51/51

20240703 WED, 비동기 처리 - async-await 통신방식

  1. promise 방식을 해결한 비동기 처리 방식 -> async - await 방식
async function whatsYourFavorite() {
  let fav = "JavaScript";
  return new Promise((resolve, reject) => resolve(fav));
}

async function displaySubject(subject) {
  return new Promise((resolve, reject) => resolve(`hello ${subject}`));
}

whatsYourFavorite().then(displaySubject).then(console.log);

// async function 은 Promise 객체를 반환한다는 것을 알 수 있다
// 따라서 async 와 함께 await 를 사용할 수 있음을 생각할 수 있다. 

async function whatsYourFavorite_async() {
  let fav = "JavaScript";
  return fav;
}

async function displaySubject_async(subject) {
  return `Hello, ${subject}`;
}

// Promise 메소드 체이닝의 단점을 보완.
async function init() {
  /*  await 
    -  whatsYourFavorite_async() 함수의 실행이 끝날 때 까지 
    기다린 후 결과값을 response 에 저장한다.  */
  const response = await whatsYourFavorite_async();

  /* displaySubject_async() 함수의 실행이 끝날 때 까지 
     기다린 후 결과값을 result 에 저장한다.
     단, response 결과를 받을 때 까지 처리하지 말고 기다려야 한다. */
  const result = await displaySubject_async(response);

  console.log(result);
}
init();

0개의 댓글