동기 처리와 비동기 처리
❓비동기 처리가 필요한 이유❓
js는 동기적이지만, 서버에 데이터를 요청하는 등 대기시간이 긴 작업이 있을 땐 비동기 작업을 해야 함
function printAnimals() {
const animals = getAnimals();
console.log(animals); //undefined
}
printAnimals()
// 대기시간이 긴 경우 animals의 값은 undefined가 출력됨
Promise 예시
const condition = true; const promise = new Promise((resolve, reject) => { if (condition) { resolve('resolved'); } else { reject('rejected'); } }); promise .then((res) => { console.log(res); }) .catch((error) => { console.error(error); });
async/await 예시
(async () => { const condition = true; const promise = new Promise((resolve, reject) => { if (condition) { resolve('resolved'); } else { reject('rejected'); } }); // try { const result = await promise; console.log(result); } catch (err) { console.error(err); } })();