如何将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。
谢谢。它工作正常:) – stafan