Promise는 JavaScript에서 비동기 처리를 위해 사용되는 객체입니다.
비동기 처리란, 코드의 실행 흐름과 상관 없이 특정 작업을 실행하고 그 결과를 나중에 받아서 처리하는 방식입니다. 대표적으로 Ajax 요청, 파일 읽기 등이 있습니다.
Promise는 비동기 작업의 결과를 나타내는 객체로서, 다음과 같은 세 가지 상태를 가질 수 있습니다.
Promise 객체는 비동기 작업의 결과를 나타내는 상태 정보뿐 아니라, 이행된 경우 결과 값을 가지고, 거부된 경우 에러 정보를 가지고 있습니다. 이러한 정보를 이용하여 비동기 작업을 보다 간편하게 처리할 수 있습니다.
Promise 객체는 then(), catch(), finally()와 같은 메서드를 제공하여 비동기 작업의 결과에 따른 처리를 할 수 있습니다. then() 메서드는 이행된 경우 실행할 콜백 함수, catch() 메서드는 거부된 경우 실행할 콜백 함수, finally() 메서드는 작업 완료 후 무조건 실행할 콜백 함수를 지정할 수 있습니다.
최근에는 async/await 문법이 도입되어서 Promise 객체를 더욱 쉽게 다룰 수 있게 되었습니다.