Promise를 이용한 자바스크립트 모듈과의 통신

자바스크립트에서 모듈은 코드를 조직화하고 재사용 가능한 블록으로 패키징하는 데에 사용됩니다. 모듈은 독립적이며 다른 모듈과 통신해야 할 경우가 있습니다. 이와 같은 상황에서 Promise를 이용하여 모듈 간의 효율적인 통신을 구현할 수 있습니다.

Promise란?

Promise는 비동기 작업의 완료 또는 실패를 나타내는 자바스크립트 객체입니다. 비동기 작업이 완료되면 resolve 함수를 호출하고, 실패하면 reject 함수를 호출합니다. then() 메서드를 이용하여 resolve 또는 reject가 호출될 때마다 특정 동작을 수행할 수 있습니다.

모듈 간의 통신을 위한 Promise

모듈 간의 통신을 위해 Promise를 사용할 수 있습니다. 자바스크립트 모듈에서는 다른 모듈을 import하여 사용할 수 있으며, 이때 Promise를 반환하는 함수를 통해 비동기적인 통신을 할 수 있습니다.

아래는 예제 코드입니다.

// 모듈A.js
export function getData() {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행

    if (/* 작업이 성공적으로 완료되었을 경우 */) {
      resolve(data); // 데이터를 resolve하여 완료 상태 전달
    } else {
      reject(error); // 에러를 reject하여 실패 상태 전달
    }
  });
}

// 모듈B.js
import { getData } from './모듈A.js';

getData()
  .then((data) => {
    // 데이터 처리
  })
  .catch((error) => {
    // 에러 처리
  });

위의 코드에서 모듈 A에서는 getData 함수를 export하여 다른 모듈에서 사용할 수 있도록 합니다. getData 함수 내에서는 비동기 작업을 수행하고, 작업이 성공적으로 완료되면 resolve(data)를 호출하여 데이터를 반환합니다. 작업이 실패한 경우에는 reject(error)를 호출하여 에러를 반환합니다.

모듈 B에서는 모듈 A에서 export한 getData 함수를 import하여 사용합니다. getData 함수를 실행한 후에는 then() 메서드를 이용하여 데이터 처리를 수행하고, catch() 메서드를 이용하여 에러 처리를 수행합니다.

이와 같은 방식으로 모듈 간에 Promise를 이용하여 효율적인 통신을 구현할 수 있습니다.

#javascript #promise