[typescript] Axios와 함께 사용되는 Promise와 async/await

Axios는 JavaScript 및 TypeScript에서 가장 인기 있는 HTTP 클라이언트 라이브러리 중 하나입니다. 이 라이브러리를 사용할 때 주로 Promise 및 async/await와 함께 사용됩니다. 이 블로그 포스트에서는 Axios를 사용하는 동안 Promise와 async/await의 동작 방식에 대해 알아보고, 이를 TypeScript에서 어떻게 활용할 수 있는지 살펴보겠습니다.

Promise와 async/await

Promise

Promise는 JavaScript 및 TypeScript에서 비동기 코드를 다룰 때 사용되는 빌트인 객체입니다. 이는 비동기 작업이 완료되었을 때 또는 에러가 발생했을 때 값을 반환하는 객체입니다. Promise는 thencatch 메서드를 사용하여 비동기 코드의 성공 또는 실패를 처리합니다.

function fetchData() {
  return new Promise((resolve, reject) => {
    // 비동기 작업
    // 성공시 resolve 호출, 실패시 reject 호출
  });
}

fetchData()
  .then(data => console.log(data))
  .catch(error => console.error(error));

async/await

async/await는 Promise를 더욱 쉽게 다룰 수 있도록 하는 문법적인 기능입니다. async 키워드를 사용하여 함수를 비동기 함수로 만들고, await 키워드를 사용하여 Promise가 settled 될 때까지 기다립니다.

async function fetchAndLogData() {
  try {
    const data = await fetchData();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

Axios와 Promise

Axios는 HTTP 요청에 대한 Promise를 반환합니다. 이를 통해 비동기 HTTP 요청을 보다 쉽게 처리할 수 있습니다.

import axios from 'axios';

axios.get('https://api.example.com/data')
  .then(response => console.log(response.data))
  .catch(error => console.error(error));

Axios와 async/await

async/await을 사용하면 Axios를 보다 간단하게 사용할 수 있습니다. 다음은 async/await을 이용하여 Axios를 사용하는 예시입니다.

import axios from 'axios';

async function fetchData() {
  try {
    const response = await axios.get('https://api.example.com/data');
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
}

이렇게 하면 코드가 더 읽기 쉽고 유지보수가 쉬워집니다.

Axios와 Promise, 그리고 async/await을 함께 사용하면 비동기 HTTP 작업을 보다 간편하게 다룰 수 있습니다. TypeScript와 함께 사용하면 타입 안정성과 함께 효율적으로 코드를 작성할 수 있습니다.

이상으로 Promise와 async/await을 활용한 Axios의 사용 방법에 대해 알아보았습니다. 감사합니다!

References