promise가 무엇인가요?
본문
취미로 노드를 하다가 프로미스 패턴을 꼭 적용하라는 소리를 들어서 안그러면 콜백헬에서 빠져나올수가 없다는데...
무엇이고 어떻게 쓰는지가 궁금합니다.
고수님들의 조언 부탁 드립니다.
ps. 검색으로 나오는 자료가 너무 높은 단계라 이해가 안되네요 ㅎㅎ
답변 2
http://www.hanbit.co.kr/store/books/look.php?p_code=E5027975256
예전에 주문해서 받아두고 제대로 읽어보진 않아서 저도 모릅니다만..;;
한번 읽어 보시면 이해하기 편하시라고 링크 남겨드립니다.
pdf 파일로 되어 있어서 바로 볼 수 있습니다.
자료는 아마 찾아보셨을것 같고 쉽게 말해서.
콜백을 보낼때 성공이든 실패든 또는 어떤 상태이든 반드시 해당 상태를 try catch 할 수 있도록 구성한다고 하면.. 좀더 쉬울까요 : ) ?
좀 상식에서는 벗어난 예제 이지만
카페에 손님이 너무 많아서 주문량이 폭주될 경우, 직원의 작업상태를 알고 있어야
손님에게 적절한 대응을 할 수 있으므로,
직원들에게 "주문 처리 상태마다 보고해주세요!" 라고 명령해서
사장님이 감시한다고 생각하면됩니다.
"1번 주문은 지금 로스팅들어갔어요!"
"3번 샌드위치는 곧 다되갑니다!"
"2번 바닐라 라떼 다되었어요!"
그래서 사장이 최종적으로 다 만들어진건 손님한테 전달하고,
시간지연이 발생하는 것은 손님한테 '죄송한데 10분만 기다려주세요' 라고 말할 수 있게 하는 것이죠.
너무 시간이 지났으면 '죄송합니다. 다음에 다시 오셔야할것 같습니다' 라고 말해줄 수 있고요.
다시 본론으로 돌아와서,
대략 4개정도의 상태로 정리할 수 있습니다.
- 작업완료
- 적업실패
- 처리중
- 공정완료
이 상태들을 파악할 수 있도록 짜는 패턴을 프로미스 패턴이라고합니다.
성공 / 실패 / 공정완료 는 익히 아시는 방법대로 프로세싱 처리하시면되고,
처리중 상태일때 지연시간으로 제약을 주기 위해 settimeout 같은 값으로 처리합니다 : )