import { combineLatest , merge , interval , of , zip } from 'rxjs' ; import { map , take , withLatestFrom } from 'rxjs/operators' ; const num1$ = interval ( 1000 ) . pipe ( map ( x => `First: ${ x }` ) , take ( 3 ) ) ; const num2$ = interval ( 1500 ) . pipe ( map ( x => `Second: ${ x }` ) , take ( 3 ) ) ; const num3$ = interval ( 500 ) . pipe ( map ( x => `Third: ${ x }` ) , take ( 3 ) ) ; const num$ = num1$ . pipe ( withLatestFrom ( num2$ , num3$ ) ) ; num$ . subscribe ( { next : x => console . log ( `${ x }` ) } ) ;