[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);
});

프로미스는 thencatch를 통해 비동기 작업 결과를 처리합니다.

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은 프로미스의 thencatch를 대체하여 코드를 더 읽기 쉽게 만듭니다.

결론

프로미스는 비동기 작업을 처리하는 방법 중 하나이며, async/await는 보다 간결하고 읽기 쉬운 방법을 제공합니다. 프로미스는 사용하기에 더 유연하고, async/await은 코드를 더 간결하게 만들어줍니다.

프로미스는 고급 비동기 코드를 작성할 때 유용하며, async/await은 비동기 코드를 더 직관적으로 이해하고 관리할 수 있게 도와줍니다.

참고 문헌: