如何将RxJS v4应用程序转换为RxJS v5版本

问题描述:

我正在转换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); 

任何帮助,将不胜感激。提前致谢。

这可能对你有所帮助。

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