zip operator will combine multiple observables and return an array of emitted values of each observable, in order
import { zip, timer } from 'rxjs';
import { map } from 'rxjs/operators';
const numberToAlphabet = (n) => String.fromCharCode(97+n);
const timer1$ = timer(0, 1500);
const timer2$ = timer(0, 2500).pipe(map(numberToAlphabet));
const zip$ = zip(timer1$, timer2$);
Official Doc: rxjs.zip