Reputation: 165
I am working on converting this application to support RxJS version 5. But I am not sure how to convert below code.
losslessClick.subscribe(function (checked) {
if (checked) {
mousemove.resume();
} else {
mousemove.pause();
}
})
I tried suggestion from here but did not work for me.
var pauser = new Subject();
var pausable = pauser.switchMap(paused => paused ? Observable.never() : mousemove);
pausable.subscription(x => console.log(x));
pauser.next(true);
Any help would be appreciated. Thanks in advance.
Upvotes: 1
Views: 56
Reputation: 2562
This might help you.
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)
Working example can be found here.
Upvotes: 1