자바스크립트에서 비동기 작업을 처리하는 방법에는 크게 callback, promise 그리고 그에 따른 (then..catch) 그리고 async-await이 있다.
function asyncFunction(){
return new Promise((resolve, reject) => {
setTimeout(()=>{
resolve('Success!');
reject('Error!');
}, 1000);
});
}
asyncFunction().then(result => {
console.log(result); // Success! 출력
})
.catch(error => {
console.error(error);
});
async function asyncFunction() {
return 'Success!';
}
async function executeFunction() {
try {
const result = await asyncFunction();
console.log(result); // 'Success!' 출력
} catch (error) {
console.error(error);
}
}
executeFunction();
복수의 연속적인 비동기 작업이 있을 때 then-catch는 체이닝하기 좋긴하나, async-await도 적절히 사용하면 같은 효과를 낼 수 있습니다.
async await 쓰자