자바스크립트는 비동기적으로 수행되는 언어이다. 이러한 비동기 작업을 효율적으로 처리해 줄 수 있는 객체가 바로 Promise이다. Promise를 활용하여 웹 요청, 파일 읽기, 데이터 베이스 쿼리 등 시간이 걸리는 작업을 효율적으로 처리할 수 있다.
특징 1
작업 성공 시 then() 메서드를 사용하고, 실패 시 catch() 메서드를 사용하여 작업을 처리한다.
myPromise
  .then((result) => {
    console.log('성공: ' + result);
  })
  .catch((error) => {
    console.error('실패: ' + error);
  });특징 2
Promise.all() 메서드를 사용하여 여러 Promise를 병렬적으로 처리가 가능하며, 이러한 작업들을 모두 수행완료 할 때까지 기다릴 수 있다.
Promise.all([promise1, promise2, promise3])
  .then((results) => {
    // 모든 작업이 완료된 후 실행
    console.log('모든 작업 완료: ' + results);
  })
  .catch((error) => {
    console.error('작업 중 에러 발생: ' + error);
  });
promise를 사용함으로서 복잡한 비동기 코드를 간소화하여 구조화할 수 있고, 콜백지옥을 방지할 수 있다.
async / await
이러한 promise를 좀 더 간편하게 다룰 수 있도록 도와주는 js 비동기 패턴이 바로 async/await이다.
async function fetchData() {
  try {
    const result = await someAsyncFunction();
    console.log(result); // 성공 처리
  } catch (error) {
    console.error(error); // 실패 처리
  }
}async를 함수 앞에 붙이면 항상 promise를 반환하고, await를 사용하여 비동기 작업의 완료를 기다린다. 또한 오류처리는 try/catch를 통해 수행한다.
'Web' 카테고리의 다른 글
| REST API와 GraphQL 비교 (0) | 2024.07.30 | 
|---|---|
| 클로저란? (0) | 2023.09.25 | 
| CSR과 SSR (0) | 2023.07.12 |