JavaScript의 Promise 사용 방법
JavaScript의 Promise 사용방법에 대해서 알아보자.
Promise 란?
JavaScript에서 Promise는 비동기 작업의 성공 또는 실패를 나타내는 객체이다. 비동기 작업이 완료된 후 결과값을 반환하거나, 작업이 실패했을 때 이유를 알려주는 데 사용된다. 쉽게 말해, Promise는 현재 상태를 나타내며, 이를 통해 비동기 코드를 더 직관적으로 작성할 수 있다.
Promise의 상태 (States)
Promise는 아래 세 가지 상태를 가진다:
- Pending (대기): 초기 상태, 아직 결과가 결정되지 않은 상태.
- Fulfilled (이행): 작업이 성공적으로 완료되어 결과를 반환한 상태.
- Rejected (거부): 작업이 실패하고 에러를 반환한 상태.
Promise의 상태는 한 번 결정되면 변경되지 않는다.
Promise 사용 방법
- Promise 생성
Promise 객체는 new Promise 생성자를 사용하여 생성한다. 생성자는 두 가지 매개변수 resolve와 reject를 가진 콜백 함수를 받는다.
- then, catch, finally 메서드
- then: Promise가 이행(fulfilled)될 때 실행된다.
- catch: Promise가 거부(rejected)될 때 실행된다.
- finally: Promise의 성공 여부와 상관없이 항상 실행된다.
Promise를 사용한 예제: API 호출
다음은 fetch API를 사용하여 데이터를 가져오는 비동기 작업을 Promise로 처리하는 예제이다.
async/await와 Promise
async/await은 Promise 기반의 비동기 코드를 더 간단하고 직관적으로 작성할 수 있게 도와준다.
Promise의 장점
- 콜백 지옥 해결: Promise는 코드의 가독성을 높여 콜백 중첩 문제를 해결한다.
- 에러 처리: catch를 사용하여 에러를 일관성 있게 처리할 수 있다.
- 체인 가능: 여러 비동기 작업을 순차적으로 처리할 수 있다.
정리
Promise는 비동기 작업을 관리하는 강력한 도구다. 기본적인 사용법을 익힌 후, async/await와 함께 사용하면 더 효율적이고 가독성 높은 코드를 작성할 수 있다. Promise는 특히 네트워크 요청이나 파일 읽기/쓰기 같은 작업에서 유용하게 사용된다.