Page 35 -
P. 35

그 림  1- 1 3  스 트 림 의  서 로  다 른  컴 포 넌 트 를  부 각 한  간 단 한  예 제  코 드
                                                      생 산 자

                                                                                                          1
                        시 간                        파 이 프 라 인                                              반

                                                             소 비 자                                        응
                                                                                                          형
                                                                                                          으
                                                                                                          로
                                                                                                          각
                        스 트 림  구 조 를  자 세 히  살 펴 보 면  P r o m i s e 에 서  사 용 한  패 턴 과  매 우  흡 사 한  것 을  알  수  있 습 니 다.  중  생
                                                                                                          하
                                                                                                          기
                        첩  콜 백 으 로  시 작 된  콜 백  지 옥,  일 명  파 멸 의  피 라 미 드 (p yr a mi d  of  d o o m )가  보 입 니 다.
                          a j a x ( ' < h o s t 1 > / i t e m s ' ,
                              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 > / i t e m s / $ { i t e m . g e t I d ( ) } / i n f o ` ,
                                          d a t a I n f o   = >   {
                                              a j a x ( ` < h o s t 3 > / f i l e s / $ { d a t a I n f o . f i l e s } ` ,
                                                  p r o c e s s F i l e s ) ;
                                      } ) ;
                                  } ) ;
                          } ) ;

                        다 음 처 럼  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 . m a p ( 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 ( p r o m i s e s   = >   P r o m i s e . a l l ( p r o m i s e s ) )
                              . t h e n (
                                  i n f o s   = >   i n f o s . m a p ( 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 m i s e s   = >   P r o m i s e . a l l ( p r o m i s e s ) )
                              . t h e n ( p r o c e s s F i l e s ) ;

                        그 리 고  이 제  스 트 림 은  이  문 제 를  더  나 은  방 향 으 로  해 결 하 는  강 력 한  연 산 자 로  P r o m i s e 의  작 동 을
                        확 장 합 니 다.


                          S t r e a m ( a j a x ( ' < h o s t 1 > / i t e m s ' )
                              . s t r e a m M a p ( i t e m   = >
                                  S t r e a 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 ` ) ) )
                              . s t r e a m M a p ( d a t a I n f o   = >     스 트 림 은  다 른  스 트 림 을
                                                                              구 성 할  수 도  있 습 니 다.
                                  S t r e a m ( 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 } ` ) ) )
                              . s u b s c r i b e ( p r o c e s s F i l e s ) ;

                                                                                                      0 4 7




         R x J S  코 딩  공 작 소( 본 문) 최 종.i n d d    4 7                                           2 0 1 9 - 1 2 - 1 2    오 전  1 0: 1 0: 0 9
   30   31   32   33   34   35   36   37