Note: this is for RxJS v5. See the bottom of this answer for the v6 equivalent.
You can use the function to combine several observed streams into one stream: Rx.Observable.merge
const scrollEvents$ = Observable.fromEvent($element, 'scroll');
const wheelEvents$ = Observable.fromEvent($element, 'wheel');
const touchMoveEvents$ = Observable.fromEvent($element, 'touchmove');
const touchEndEvents$ = Observable.fromEvent($element, 'touchend');
const allEvents$ = Observable.merge(
scrollEvents$,
wheelEvents$,
touchMoveEvents$,
touchEndEvents$
);
, , , . , - :
const events = [
'scroll',
'wheel',
'touchmove',
'touchend',
];
const eventStreams = events.map((ev) => Observable.fromEvent($element, ev));
const allEvents$ = Observable.merge(...eventStreams);
:
const subscription = allEvents$.subscribe((event) => {
});
RxJS v6
RxJS 6 merge fromEvent v5, :
import { fromEvent, merge } from 'rxjs';
const scrollEvents = fromEvent($element, 'scroll');
const allEvents$ = merge(
scrollEvents$,
wheelEvents$,
touchMoveEvents$,
touchEndEvents$
);