[javascript] 프로미스와 async/await의 차이점
자바스크립트에서 비동기 작업을 다룰 때 프로미스와 async/await은 두 가지 인기있는 방법입니다. 이들의 주요 차이점을 알아보겠습니다.
프로미스
프로미스는 비동기 작업의 완료 또는 실패를 나타내는 객체입니다. 간단한 프로미스 예제는 다음과 같습니다.
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('작업 완료');
}, 1000);
});
myPromise.then((result) => {
console.log(result);
}).catch((error) => {
console.error(error);
});
프로미스는 then
및 catch
를 통해 비동기 작업 결과를 처리합니다.
async/await
async/await는 프로미스를 더 쉽게 다룰 수 있는 방법을 제공합니다. async 함수 내에서 await 키워드를 사용하여 비동기 작업을 처리하고 그 결과를 반환합니다.
다음은 async/await를 사용한 예제입니다.
function myPromiseFunc() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('작업 완료');
}, 1000);
});
}
async function myAsyncFunc() {
try {
const result = await myPromiseFunc();
console.log(result);
} catch (error) {
console.error(error);
}
}
myAsyncFunc();
async/await은 프로미스의 then
및 catch
를 대체하여 코드를 더 읽기 쉽게 만듭니다.
결론
프로미스는 비동기 작업을 처리하는 방법 중 하나이며, async/await는 보다 간결하고 읽기 쉬운 방법을 제공합니다. 프로미스는 사용하기에 더 유연하고, async/await은 코드를 더 간결하게 만들어줍니다.
프로미스는 고급 비동기 코드를 작성할 때 유용하며, async/await은 비동기 코드를 더 직관적으로 이해하고 관리할 수 있게 도와줍니다.
참고 문헌:
- 자바스크립트 Promise - https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise
- 자바스크립트 async 함수 - https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/async_function