본문 바로가기
javascript pure/javascript 코어 개념

8. 비동기 프로그래밍(Asynchronous Programming) - 2

by leo2114 2024. 2. 16.
반응형

Promise와 Promise 체이닝

JavaScript에서 Promise는 비동기 작업을 처리하는 데 유용한 객체입니다. 이번 섹션에서는 Promise의 개념과 Promise 체이닝에 대해 알아보고, 간단한 예제를 통해 이를 이해해 보겠습니다.

1. Promise의 개념

Promise는 비동기 작업이 완료되거나 실패했을 때 결과 값을 반환하거나 에러를 처리할 수 있는 객체입니다. Promise는 세 가지 상태를 가질 수 있습니다.

  • 대기(pending): 비동기 작업이 완료되지 않은 상태
  • 이행(fulfilled): 비동기 작업이 성공적으로 완료된 상태
  • 거부(rejected): 비동기 작업이 실패한 상태

2. Promise 체이닝

Promise 체이닝은 여러 개의 비동기 작업을 연속적으로 처리할 수 있는 방법입니다. 각각의 비동기 작업은 then 메서드를 사용하여 체이닝될 수 있습니다.

// Promise 생성
const promise = new Promise((resolve, reject) => {
    // 비동기 작업 수행
    setTimeout(() => {
        resolve('Data fetched successfully');
    }, 2000);
});

// Promise 체이닝
promise
    .then((result) => {
        console.log(result); // 'Data fetched successfully'
        return 'Additional data';
    })
    .then((additionalData) => {
        console.log(additionalData); // 'Additional data'
    })
    .catch((error) => {
        console.error(error);
    });

 

위의 코드에서는 Promise 객체를 생성하여 비동기 작업을 수행하고, then 메서드를 사용하여 작업의 결과를 처리합니다. then 메서드를 여러 번 호출하여 연속적으로 처리할 수 있습니다. 또한, catch 메서드를 사용하여 에러를 처리할 수 있습니다.

3. 결론

Promise는 JavaScript에서 비동기 작업을 처리하는 데 유용한 객체이며, Promise 체이닝을 통해 여러 개의 비동기 작업을 연속적으로 처리할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. Promise를 적절히 활용하여 비동기 작업을 보다 효율적으로 처리할 수 있습니다.

반응형