자바스크립트 Promise: 비동기 처리를 더 쉽고 간편하게 해보자

Photo of author

By tutor

자바스크립트 Promise: 비동기 처리를 더 쉽고 간편하게 해보자

자바스크립트 Promise: 비동기 처리를 더 쉽고 간편하게 해보자

 

자바스크립트 Promise: 비동기 처리를 더 쉽고 간편하게 해보자

비동기 처리는 빠른 응답성과 효율성을 제공할 수 있지만, 콜백 헬(callback hell) 문제를 야기할 수 있습니다. 자바스크립트 Promise는 이러한 문제를 해결하는 데 도움이 되는 객체입니다.

Promise란?

Promise는 비동기 작업이 완료되었을 때 수행할 작업(콜백 함수)을 나타내는 객체입니다. Promise 객체는 현재 처리 중인 작업의 상태에 대한 정보를 저장하며, 작업이 완료되면 성공(resolve) 또는 실패(reject) 상태 중 하나가 됩니다.

const promise = new Promise((resolve, reject) => {
  // 비동기 작업
  if (/* 작업이 성공적으로 완료되면 */) {
    resolve('작업 결과');
  } else {
    reject('에러 메시지');
  }
});

promise.then(result => console.log(result))
       .catch(error => console.log(error));

위 코드는 Promise 객체를 생성하고, 작업이 성공하면 resolve 함수를 호출하여 결과를 반환하고, 작업이 실패하면 reject 함수를 호출하여 에러 메시지를 반환합니다. 반환된 결과는 then 메서드로 처리하고, 에러는 catch 메서드로 처리합니다.

Promise 체이닝

Promise 객체는 다른 Promise 객체와 연결하여 체이닝(chain)할 수 있습니다. 이를 통해 여러 비동기 작업을 순서대로 실행하거나, 작업 결과에 따라 다른 작업을 수행할 수 있습니다.

const promise1 = new Promise((resolve) => {
  // 비동기 작업
  resolve('첫 번째 작업 결과');
});

const promise2 = (result) => {
  console.log(result);
  return new Promise((resolve) => {
    // 비동기 작업
    resolve('두 번째 작업 결과');
  });
};

const promise3 = (result) => {
  console.log(result);
  return new Promise((resolve) => {
    // 비동기 작업
    resolve('세 번째 작업 결과');
  });
};

promise1.then(promise2)
       .then(promise3)
       .then(console.log)
       .catch(console.error);

위 코드는 첫 번째 Promise 객체를 생성하고, 이를 두 번째, 세 번째 Promise 객체와 체이닝하여 순차적으로 실행한 후, 최종 결과를 출력합니다. 만약 중간에 에러가 발생하면 catch 메서드에서 처리합니다.

Promise는 비동기 처리를 더 쉽고 간결하게 만들어 주는 좋은 도구입니다. 하지만, 간단한 작업에서는 콜백 함수를 사용하는 것이 더 간단할 수도 있습니다.

자바스크립트 Promise

자바스크립트 Promise는 비동기 처리를 더 쉽고 간편하게 해주는 객체입니다. Promise 객체는 비동기 작업이 완료될 때까지 기다렸다가, 작업이 완료되면 성공 또는 실패 상태에 따라 콜백 함수를 수행합니다. Promise 객체를 활용하면 콜백 헬(callback hell) 문제를 해결하고, 여러 비동기 작업을 체이닝하여 순차적으로 실행할 수 있습니다.