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

时间:2017-09-19 09:59:38

标签: javascript rxjs rxjs5

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

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

1 个答案:

答案 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