[javascript] 비동기 작업의 순차적 처리를 위한 프로미스 활용 방법

비동기 작업은 JavaScript에서 자주 사용되는 작업입니다. 이는 어떤 작업을 비동기로 처리하면서도 다른 작업을 진행할 수 있게 해주는 동시성을 제공합니다. 하지만 때로는 비동기 작업을 순차적으로 처리해야 할 필요가 있습니다. 이러한 경우에 프로미스를 활용하여 비동기 작업을 순차적으로 처리할 수 있습니다.

프로미스란?

프로미스는 비동기 작업이 완료되었을 때 결과를 나타내는 JavaScript 객체입니다. 프로미스는 세 가지 상태를 갖습니다.

비동기 작업을 순차적으로 처리하기 위한 방법

프로미스를 사용하여 비동기 작업을 순차적으로 처리할 수 있습니다. 아래는 비동기 작업을 순차적으로 처리하는 예제 코드입니다.

function asyncTask() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve();
    }, 1000);
  });
}

function sequentialAsyncTasks() {
  asyncTask()
    .then(() => {
      console.log("첫 번째 비동기 작업 완료");
      return asyncTask();
    })
    .then(() => {
      console.log("두 번째 비동기 작업 완료");
      return asyncTask();
    })
    .then(() => {
      console.log("세 번째 비동기 작업 완료");
    });
}

sequentialAsyncTasks();

위의 코드는 asyncTask라는 비동기 작업을 수행하는 함수와 sequentialAsyncTasks라는 순차적으로 비동기 작업을 처리하는 함수가 정의되어 있습니다. sequentialAsyncTasks 함수에서는 asyncTask 함수를 호출하고 프로미스의 then 메서드를 사용하여 순차적으로 비동기 작업을 처리합니다.

결론

프로미스를 활용하여 비동기 작업을 순차적으로 처리하는 방법에 대해 살펴보았습니다. 비동기 작업을 순차적으로 처리해야 하는 경우, 프로미스를 사용하여 보다 효율적으로 코드를 작성할 수 있습니다.

참고 자료