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