반응형
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를 적절히 활용하여 비동기 작업을 보다 효율적으로 처리할 수 있습니다.
반응형
'javascript pure > javascript 코어 개념' 카테고리의 다른 글
12. 이벤트 루프(Event Loop) - 3 (0) | 2024.02.16 |
---|---|
11. 이벤트 루프(Event Loop) - 2 (0) | 2024.02.16 |
10. 이벤트 루프(Event Loop) - 1 (0) | 2024.02.16 |
9. 비동기 프로그래밍(Asynchronous Programming) - 3 (0) | 2024.02.16 |
7. 비동기 프로그래밍(Asynchronous Programming) - 1 (0) | 2024.02.15 |
6. 프로토타입(Prototypes)과 프로토타입 상속(Prototype Inheritance) - 3 (0) | 2024.02.15 |
5. 프로토타입(Prototypes)과 프로토타입 상속(Prototype Inheritance) - 2 (0) | 2024.02.15 |
4. 프로토타입(Prototypes)과 프로토타입 상속(Prototype Inheritance) - 1 (0) | 2024.02.15 |