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