2017-11-27 3 views
1

マウスをクリックするたびにmousemoveイベントを購読し、マウスをクリックするたびに購読を解除します。rxjs:値が発行されるたびにサブスクライブします

// start when mousedown 
Observable.fromEvent(element, 'mousedown') 
      .subscribe(() => { 
       Observable.fromEvent(element, 'mousemove') 
         // finish when mouseup 
         .takeUntil(Observable.fromEvent(element, 'mouseup')) 
         .subscribe(() => {/*do something on mousemove*/}); 
      }); 

コードを最適化することはできますか?(「購読」方式を1つにする)

答えて

4
Observable.fromEvent(element, 'mousedown') 
    .switchMap(() => 
     Observable.fromEvent(element, 'mousemove') 
      .takeUntil(Observable.fromEvent(element, 'mouseup')) 
    ) 
    .subscribe(() => {/*do something on mousemove*/}); 
関連する問題