Node.js의 약속

Mar 24 2023
Node.js는 개발자가 확장 가능하고 효율적인 애플리케이션을 구축할 수 있는 인기 있는 런타임 환경입니다.

Node.js는 개발자가 확장 가능하고 효율적인 애플리케이션을 구축할 수 있는 인기 있는 런타임 환경입니다. Node.js의 핵심 기능 중 하나는 고성능 애플리케이션을 구축하는 데 필수적인 비동기 코드를 처리하는 기능입니다. 비동기 코드는 특히 복잡한 작업이나 장기 실행 작업을 처리할 때 관리하기 어려울 수 있습니다. Node.js에서 비동기 작업을 처리하는 간단하고 효과적인 방법을 제공하는 Promise가 필요한 곳입니다.

이 기사에서는 Node.js의 Promise 개념과 최신 애플리케이션을 구축하는 데 Promise가 중요한 이유를 살펴보겠습니다.

약속이란 무엇입니까?

간단히 말해서 약속은 아직 사용할 수 없는 값을 나타내는 개체입니다. Promise는 네트워크 요청 또는 디스크에서 파일 읽기와 같은 JavaScript의 비동기 작업을 처리하는 데 사용됩니다.

약속에는 세 가지 상태가 있습니다.

  • 보류: 값을 아직 사용할 수 없음을 나타내는 약속의 초기 상태입니다.
  • 이행됨: 작업이 성공하고 값을 사용할 수 있는 약속의 상태입니다.
  • 거부됨: 작업이 실패하고 오류가 발생한 약속의 상태입니다.

Node.js에서 약속 만들기

Node.js에서 약속을 만드는 것은 간단합니다. Promise 생성자를 사용하여 새 약속을 만들고 비동기 작업을 수행하는 함수를 전달합니다. 이 함수는 작업의 성공 여부를 나타내는 resolve 및 reject라는 두 개의 인수를 사용합니다.

다음은 1초 지연 후에 확인되는 약속을 만드는 예입니다.

const myPromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Operation successful!');
  }, 1000);
});

Promise 결과 처리

Promise가 생성되면 then 메서드를 사용하여 결과를 처리할 수 있습니다. then 메서드는 두 개의 함수를 인수로 사용합니다. 하나는 성공적인 작업을 처리하기 위한 것이고 다른 하나는 오류를 처리하기 위한 것입니다.

다음은 위에서 만든 약속을 사용하여 결과를 콘솔에 기록하는 예입니다.

myPromise.then((result) => {
  console.log(result);
}).catch((error) => {
  console.error(error);
});

체인 약속

Promise의 강력한 기능 중 하나는 Promise를 서로 연결하는 기능입니다. 이를 통해 중첩 콜백 없이 시퀀스에서 일련의 비동기 작업을 수행할 수 있습니다.

다음은 두 가지 약속을 함께 연결하는 예입니다.

const getUser = (id) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const user = { id, name: 'John Doe' };
      resolve(user);
    }, 1000);
  });
};

const getPosts = (user) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const posts = [{ id: 1, title: 'Post 1' }, { id: 2, title: 'Post 2' }];
      resolve({ user, posts });
    }, 1000);
  });
};

getUser(1)
  .then(getPosts)
  .then((result) => {
    console.log(result);
  })
  .catch((error) => {
    console.error(error);
  });

#nodejs #자바스크립트 #블록체인 #약속 #풀스택개발자