Der folgende Code definiert das gewünschte Verhalten (funktioniert). Die Emmition des Mousemove-Ereignisses tritt nur auf, wenn die Maus nach unten bewegt wird.Erneutes Abonnieren von takeUntil/skipUntil
Rx.Observable.fromEvent(window,"mouseup")
.subscribe(
() => {
if(subscription)
subscription.dispose();
}
)
Rx.Observable.fromEvent(window,"mousedown")
.subscribe(
() => {
subscription = Rx.Observable.fromEvent(window,"mousemove")
.subscribe(
(event) => console.log(event)
)
}
)
Ich möchte es mit takeUntil/skipUntil Operatoren umschreiben. Aber das schlägt fehl:
let fs = [
(e) => console.log(e),
(err) => console.log(err),
() => {
console.log('done')
source.subscribe(...fs);
}
];
let getDown =() => Rx.Observable.fromEvent(document,"mousedown");
let getUp =() => Rx.Observable.fromEvent(document,"mouseup");
let source = Rx.Observable.fromEvent(document,"mousemove")
.skipUntil(getDown())
.takeUntil(getUp());
source.subscribe(
...fs
)
Wie kann ich das tun? Vielen Dank!