Page 21 -
P. 21

의 해  나 아 가 야  합 니 다.  그 래 서 ‘ X 를  실 행 한  다 음( t h e n ) Y 를  실 행 하 라’ 의  t h e n 이 라 는  개 념 을  소 개
                        하 고 자  다 음  코 드 를  작 성 했 습 니 다

                                                                                                          1
                          F e t c h   a l l   i t e m s ,   t h e n
                                                             핵 심  용 어 인 t h e n 은  시 간 과  순 서 를  나 타 냅 니 다.  반
                              F o r - e a c h   i t e m   f e t c h   a l l   f i l e s ,   t h e n       응
                                  P r o c e s s   e a c h   f i l e                                       형
                                                                                                          으
                                                                                                          로
                                                                                                          각
                        이  부 분 이  P r o m i s e 가  도 입 되 는  곳 입 니 다.  P r o m i s e 는  비 동 기 와  장 기  실 행  연 산  그 리 고  결 과 나  에  생
                                                                                                          하
                                                                                                          기
                        러 를    구 독 할    수    있 는    미 래    값 을    래 핑 한    데 이 터    유 형 으 로,    기 본    작 업 이    완 료 되 어    계 산 된    결 괏 값
                        을  구 독 자 (s u bs cri b er)가  받 게  될  때  프 로 세 스 가  완 료 된  것 으 로  간 주 합 니 다.  P r o m i s e 가  실 행 된  후
                        에 는  값 을  변 경 할  수  없 으 므 로  사 실 상  함 수 형  특 성 인  불 변  타 입 입 니 다.  또  다 른  P r o m i s e   구 현 은
                                          5
                        Pr o mis e /A +  프 로 토 콜 을  기 반 으 로  하 며,  일 정  수 준 의  에 러  처 리 와  t h e n ( )   메 서 드 를  통 한  연 속 을
                        제 공 하 게  설 계 되 었 습 니 다.  a j a x ( ) 가  P r o m i s e 를  반 환 한 다 고  가 정 할  때  앞 서  다 룬  예 제 를  처 리 하 는
                        방 법 은  다 음 과  같 습 니 다.

                          a j a x ( ' < h o s t 1 > / i t e m s ' )
                              . t h e n ( i t e m s   = >
                                  i t e m s . f o r E a c h ( i t e m   = >
                                      a j a x ( < h o s t 2 > / d a t a / $ { i t e m . g e t I d ( ) } / i n f o ` )
                                          . t h e n ( d a t a I n f o   = >
                                              a j a x ( ` < h o s t 3 > / d a t a / f i l e s / $ { d a t a I n f o . f i l e s } ` )
                                          )
                                          . t h e n ( p r o c e s s F i l e s ) ;
                                  )
                              ) ;

                        이  예 제  코 드 는  앞 서  소 개 한  구 문 과  유 사 합 니 다.  최 근  E S 6 에 서  언 어 에  추 가 되 었 고  F P   디 자 인 에
                        서  영 감 을  받 은  P r o m i s e 는  콜 백 보 다  유 용 하 고  관 용 적 입 니 다.  P r o m i s e   함 수 들 을  선 언 적( 달 성 하 는

                        방 법 을  표 현 하 는  것 이  아 닌  달 성 하 려 는  것 을  표 현 하 는  방 식) 으 로  적 용 하 면  부 가  작 용 을  순 수  함 수
                        방 식 으 로  표 현 할  수  있 습 니 다.  즉,  각  함 수 를  다 음 과  같 이  독 립 적 으 로  꺼 낸 다 면  좀  더  선 언 적 으 로
                        코 드 를  리 팩 터 링 할  수  있 습 니 다.

                          l e t   g e t I t e m s   =   ( )   = >   a j a x ( ' < h o s t 1 > / i t e m s ' ) ;
                          l e t   g e t I n f o   =   i t e m   = >   a j a x ( ` < h o s t 2 > / d a t a / $ { i t e m . g e t I d ( ) } / i n f o ` ) ;
                          l e t   g e t F i l e s   =   d a t a I n f o   = >   a j a x ( ` < h o s t 3 > / d a t a / f i l e s / $ { d a t a I n f o . f i l e s } ` ) ;





                        5    htt p s ://pr o mi s e s a pl u s .c o m /

                                                                                                      0 3 3




         R x J S  코 딩  공 작 소( 본 문) 최 종.i n d d    3 3                                           2 0 1 9 - 1 2 - 1 2    오 전  1 0: 1 0: 0 7
   16   17   18   19   20   21   22   23   24   25   26