20240703 WED, 비동기 처리 - 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();