Promise

❓질문

자바스크립트의 Promise에 대해서 아는 대로 설명해주세요


💡 조사하기전 내가 알고 있던 내용

자바스크립트의 Promise는 예를 들어 클라이언트에서 서버로 데이터 전송이나 호출을 했을때 그 비동기 작업에 대한 상태를 알려주는 객체입니다.
크게 Fulfilled , Pending , Rejected로 나뉘며
비동기 작업이 진행 중이라는 상태를 의미하는 Pending
성공했다는 Fulfilled , 실패를 의미하는 Rejected로 나뉩니다.


🏫 정리한 내용

자바스크립트의 Promise는 비동기 작업을 관리하고 해당 작업의 성공 또는 실패 결과를 나중에 사용할 수 있도록 하는 객체입니다. 정리해서 말씀드려보자면 Promsie는 비동기 작업의 완료 여부를 약석 해주는 개념이라고 할수있습니다.

Promise는 3가지 상태를 가지며 각각 성공, 진행중 , 실패를 의미하는 Fulfilled , Pending , Rejected 가 있습니다.

Promise 객체는 비동기 작업을 수행할 함수를 인자로 받아서 실행하며, 이 함수는 resolve()reject() 라는 두 가지 콜백을 받습니다 resolve() 는 작업성공시 PromiseFulfilled로 변환시키고 reject()는 작업 실패시 PromiseRejected로 변환 시킵니다.

Promise는 코드의 가독성을 높이고, 비동기 작업의 흐름을 제어하는 데에 매우 유용합니다. 특히 여러개의 Promise를 순차적으로 연결할 수도 있고 Promise.all()이나 allSeetled() 같은 메서드를 통해서 병렬로 비동기 작업을 처리할 수도 있습니다.

하지만 Promise는 중첩되거나 다른 비동기 흐름에서 에러가 발생한 경우 복잡도가 증가하고
콜백 지옥을 완전하게 해결하지 못한 다는 단점이 있습니다.