我正在努力转换this应用程序以支持RxJS版本5.但我不确定如何转换下面的代码。
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);
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分: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。