자바스크립트 프로미스
자바스크립트 프로미스는 비동기 작업을 처리하기 위한 객체입니다. 비동기 작업은 예를 들어 서버에서 데이터를 가져오거나 파일을 읽는 등 시간이 오래 걸리는 작업을 말합니다. 프로미스를 사용하면 이러한 비동기 작업을 더 효율적이고 직관적으로 다룰 수 있습니다.
프로미스의 장점
- 가독성: 프로미스는 비동기 작업의 실행 상태를 명확하게 표현합니다. 코드가 의도한대로 실행되는지 쉽게 추적할 수 있습니다.
- 에러 핸들링: 프로미스는 에러 핸들링을 쉽게 할 수 있습니다.
catch
메서드를 사용하여 에러를 처리할 수 있고,finally
메서드를 사용하여 항상 실행되어야 하는 로직을 정의할 수 있습니다. - 체이닝: 프로미스를 이용하면 여러 비동기 작업을 순차적으로 체이닝할 수 있습니다. 이를 통해 코드의 가독성을 높이고 중첩된 콜백 함수를 피할 수 있습니다.
- 병렬 실행: 여러 개의 비동기 작업을 병렬로 실행할 수 있습니다.
Promise.all
메서드를 사용하여 여러 프로미스가 모두 완료될 때까지 기다릴 수 있습니다.
프로미스의 사용법
자바스크립트에서 프로미스 객체를 생성하려면 new Promise
구문을 사용합니다. 아래는 간단한 예제 코드입니다.
const fetchData = new Promise((resolve, reject) => {
// 비동기 작업 수행
// 작업이 성공적으로 완료되면 resolve 함수 호출
// 작업 중 에러가 발생하면 reject 함수 호출
});
fetchData.then(data => {
// 작업이 성공적으로 완료되면 실행되는 콜백 함수
}).catch(error => {
// 작업 중 에러가 발생하면 실행되는 콜백 함수
}).finally(() => {
// 항상 실행되어야 하는 로직
});
위 코드에서 fetchData
는 비동기 작업을 수행하는 프로미스 객체입니다. 비동기 작업이 성공적으로 완료되면 resolve
함수를 호출하고, 작업 중 에러가 발생하면 reject
함수를 호출합니다.
then
메서드는 작업이 성공적으로 완료되면 호출되는 콜백 함수를 등록합니다. catch
메서드는 작업 중 에러가 발생하면 호출되는 콜백 함수를 등록합니다. finally
메서드는 항상 실행되어야 하는 로직을 정의합니다.
이렇게 프로미스를 이용하면 비동기 작업을 보다 간편하게 다룰 수 있습니다. 프로미스는 자바스크립트에서 비동기 작업을 처리하는 중요한 개념이므로, 잘 숙지하고 적절히 활용하는 것이 좋습니다.