[javascript] 프로미스 체이닝을 통한 연속적인 비동기 작업 처리
자바스크립트에서 비동기 작업은 매우 흔한 경우입니다. 이러한 비동기 작업을 처리하기 위해 프로미스가 자주 사용됩니다. 프로미스는 비동기 작업의 결과를 처리하는 데 사용되는 객체입니다. 프로미스는 성공적으로 완료되었을 때 호출될 콜백 함수와 실패했을 때 호출될 콜백 함수를 제공합니다.
프로미스 체이닝은 여러 개의 비동기 작업을 연속적으로 처리하는 방법입니다. 각 작업은 이전 작업이 완료되면 실행됩니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.
아래는 프로미스 체이닝의 예제 코드입니다.
function getData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const data = { id: 1, name: "John" };
resolve(data);
}, 1000);
});
}
function processData(data) {
return new Promise((resolve, reject) => {
setTimeout(() => {
data.age = 30;
resolve(data);
}, 1000);
});
}
getData()
.then(processData)
.then((result) => {
console.log(result);
// { id: 1, name: "John", age: 30 }
})
.catch((error) => {
console.error(error);
});
위의 코드에서 getData()
함수는 1초 후에 데이터를 성공적으로 반환하는 프로미스를 생성합니다. 이후 processData()
함수는 1초 후에 데이터를 가공하여 새로운 필드를 추가한 뒤 결과를 반환하는 프로미스를 생성합니다.
getData().then(processData)
와 같이 체인을 이어가면, getData()
의 프로미스가 완료되면 processData()
가 실행되고, 그 결과로 반환된 프로미스가 다시 체인에 연결됩니다.
마지막으로 then()
메서드는 마지막 작업이 완료되었을 때 호출되는 콜백 함수를 등록합니다. 에러가 발생하면 catch()
메서드를 사용하여 에러를 처리할 수 있습니다.
프로미스 체이닝을 사용하면 비동기 작업을 간결하고 구조화된 방법으로 처리할 수 있습니다. 또한 에러 처리도 일관되게 할 수 있기 때문에 코드의 신뢰성을 향상시킬 수 있습니다.