2017-09-19 10 views
1

thisアプリケーションをRxJSバージョン5をサポートするように変換しようとしています。しかし、以下のコードをどのように変換するのか分かりません。RxJS v4アプリケーションをRxJS v5バージョンに変換する方法

losslessClick.subscribe(function (checked) { 
    if (checked) { 
    mousemove.resume(); 
    } else { 
    mousemove.pause(); 
    } 
}) 

私はhereからの提案を試みましたが、私には役に立たなかった。

var pauser = new Subject(); 
var pausable = pauser.switchMap(paused => paused ? Observable.never() : mousemove); 
pausable.subscription(x => console.log(x)); 
pauser.next(true); 

助けてください。前もって感謝します。

答えて

1

これは役に立ちます。

var losslessResults = document.getElementById('losslessResults'); 
var losslessToggle = document.getElementById('losslessToggle'); 

function logInput(text) { 
    var li = document.createElement('li'); 
    li.innerHTML = text; 
    losslessResults.appendChild(li); 
} 

var mousemove = Rx.Observable.fromEvent(document, 'mousemove') 
    .map(function (e) { 
     return 'clientX: ' + e.clientX + ', clientY: ' + e.clientY; 
    }); 

// Lossless 
var losslessClick = Rx.Observable.fromEvent(losslessToggle, 'click') 
    .map(function (e) { 
     return e.target.checked; 
    }) 

var pauser = new Rx.Subject(); 
var pausable = pauser.switchMap(function (paused) { 
    return paused ? mousemove : Rx.Observable.never(); 
}); 
pausable.subscribe(function (x) { 
    return logInput(x); 
}); 
pauser.next(true); 
losslessClick.subscribe(pausable) 

実施例はhereである。

+0

ありがとうございました。それはうまく動作:) – stafan

関連する問題