[javascript] 프로미스(Promise) 객체의 사용법

프로미스(Promise)는 자바스크립트에서 비동기 작업을 다루는 데 유용한 객체입니다. 프로미스는 비동기 처리 결과를 나타내는 객체로, 작업이 성공적으로 완료되었는지 또는 실패했는지를 나타내는 상태 정보와 작업 결과 값을 제공합니다.

프로미스 객체 생성하기

프로미스 객체는 다음과 같이 new Promise()를 사용하여 생성할 수 있습니다.

const myPromise = new Promise((resolve, reject) => {
  // 비동기 작업 수행
  const success = true;
  if (success) {
    resolve("성공한 경우 결과 값");
  } else {
    reject("실패한 경우 이유");
  }
});

위의 예제에서 new Promise()를 호출할 때, 함수 매개변수로 resolvereject를 받아와서 비동기 작업을 수행한 후 해당 작업의 성공 또는 실패에 따라 resolve 또는 reject를 호출해야 합니다.

프로미스 체이닝

프로미스는 여러 개의 비동기 작업을 순차적이거나 병렬로 실행하고, 각 작업의 완료 여부에 따라 다음 작업을 연결하여 처리할 수 있습니다. 이를 프로미스 체이닝이라고 합니다.

myPromise
  .then((result) => {
    console.log("첫 번째 작업 성공:", result);
    return "두 번째 작업 결과";
  })
  .then((result) => {
    console.log("두 번째 작업 성공:", result);
  })
  .catch((error) => {
    console.error("작업 실패:", error);
  });

위의 예제에서 .then()은 이전 작업이 성공했을 때 실행되는 콜백 함수를 등록하며, .catch()는 어떤 위치에서든 발생할 수 있는 작업 실패에 대한 처리를 등록합니다.

프로미스의 활용

프로미스는 주로 HTTP 요청이나 파일 읽기와 같은 비동기 작업을 다룰 때 유용하게 활용됩니다. 또한, ES6부터는 async/await 구문을 통해 프로미스를 더 간편하게 다룰 수 있게 되었습니다.

프로미스는 비동기 코드의 가독성과 유지보수성을 높여주는 장점을 가지고 있으며, 특히 복잡한 비동기 작업을 보다 간편하게 다룰 수 있는 장점을 가지고 있습니다.

프로미스를 사용함으로써 비동기 코드의 처리를 보다 효율적으로 다룰 수 있게 되었습니다.

결론

프로미스는 자바스크립트 비동기 작업의 처리를 보다 직관적이고 효율적으로 다룰 수 있게 도와주는 객체입니다. 프로미스를 활용하면 비동기 작업을 보다 유지보수하기 쉽고 가독성이 뛰어난 코드로 작성할 수 있습니다.


참조: