Promise(프로미스)는 JavaScript에서 비동기 작업을 처리하기 위한 객체입니다.
비동기 작업은 일반적으로 서버 요청, 파일 로딩 등과 같은 작업을 의미합니다.
Promise는 이러한 비동기 작업의 결과를 다루기 위해 사용됩니다.
Promise 객체는 다음과 같은 세 가지 상태를 가질 수 있습니다:
대기(pending): 비동기 작업이 아직 완료되지 않은 상태입니다.
이행(fulfilled): 비동기 작업이 성공적으로 완료되어 결과값을 반환한 상태입니다.
거부(rejected): 비동기 작업이 실패하거나 오류가 발생한 상태입니다.
Promise 객체는 일련의 작업을 연결하여 처리할 수 있습니다. 주로 then()과 catch() 메서드를 사용하여 작업의 성공 또는 실패에 대한 처리를 정의합니다.
then() 메서드는 Promise 객체가 이행 상태일 때 호출됩니다. 이 메서드는 두 개의 콜백 함수를 인자로 받습니다. 첫 번째 콜백 함수는 비동기 작업이 성공적으로 완료된 경우 호출되며, 작업의 결과값을 인자로 받습니다. 두 번째 콜백 함수는 옵션으로, 비동기 작업이 실패한 경우 호출됩니다.
catch() 메서드는 Promise 객체가 거부 상태일 때 호출됩니다. 이 메서드는 비동기 작업이 실패한 경우 호출되며, 발생한 오류를 처리하는 콜백 함수를 인자로 받습니다.
Promise 객체는 비동기 작업을 좀 더 구조화하고 관리하기 쉽게 만들어 줍니다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.