[PlayNode 2016] 컨퍼런스 - RxJS
오늘은 오후 일정을 비우고 PlayNode 컨퍼런스를 참석했다. 첫 시간은 늘 사용해 보아도 익숙해 지지 않는 RxJS시간이다.
- Promise vs Observable 차이점
+ Observable에서 multi value처리 가능. stream이니깐 당연하다.
+ lazy 기능으로 subscribe 했을 때 수행한다
+ unsubscribe를 통해 cancelable할 수 있다.
+ completion 콜백
- Operator
+ 200개 가량의 오퍼레이터 현재 v5.0.0-rc.4
+ create, fromEvent, mergeMap (flatMap)
> mergeMap: 여러 observable을 하나의 observable로 만드는 오퍼레이터
+ filtering
> takeUtil : 특정 Observable이 발생하면 observable생성을 멈춘다 p61
+ composition
> combileLatest p63: 다른 observable의 마지막 값들을 합쳐서 obserbale을 만들어 준다
> zip : 각 observable에서 발생한 순번의 것들을 서로 묶어준다
+ error
> retry: error 발생하면 2두번 더 실행한다
> retryWhen: 재시작 시점을 지정 가능하다 p72
- 비동기 코드 조합하기 p77
+ Drag & Drop
> mousedown, mousemove, mouseup이벤트의 조합 p80: mousedown+ mousemove를 flatmap으로 조합하고 takeUtill에서 mouseup이 발생하면 대상 dom을 이동
+ Cache + DB
> merge를 통해 가장 먼저온것을 take(1)으로 선택한다
+ AWS Lambda p90
> bindNodeCallback을 사용하면 node스타일 콜백을 observable로 변환가능하고 이를 다른 observable과 합친다
+ On / offline 브라우져에서
> retry 로 에러 발생시 재 시작토록 구현 p108
> websocket에서 retryWhen으로 on / offline을 체크할 수 있다.
- 장단점 p113
참조
- http://www.slideshare.net/kyungyeolkim39/compose-async-with-rxjs-69421413