자바스크립트는 비동기 처리를 위한 콜백 함수를 많이 사용하나, 이에 따른 콜백 지옥을 야기할 수 있음. Promise는 이러한 비동기 처리의 가독성을 높이고 코드의 흐름을 명확하게 관리할 수 있도록 도와줌.
Promise 객체는 비동기 작업을 수행할 함수를 인자로 받아서 실행 => 이 함수는 resolve(), reject() 두가지 콜백을 받음
resolve()는 비동기 작업이 성공했을 때 값을 전달하여 Promise를 fulfilled 상태로 전환, reject()는 비동기 작업이 실패했을 때 오류를 전달하여 Promise를 rejected 상태로 전환
Pending 상태에서 Fulfilled나 Rejected 상태로 전환되면, 이후에는 다른 상태로 전환되지 않으며, 그 결과 값을 통해 해당 작업의 성공 여부를 알 수 있다.
Promise는 코드의 가독성을 높이고, 비동기 작업의 흐름을 제어하는 데에 매우 유용