flatMap is an alias for mergeMap
// can be used to merge two streams
ngOnInit() {
// produces a number every one second
const numbers$ = Observable.interval(1000);
// create observable of letters
const letters$ = Observable.of('a', 'b', 'c', 'd', 'e');
letters$.pipe(
mergeMap(x => numbers$.pipe(take(5), map(i => i + x)))
).subscribe(z => console.log(z));
}
// output
// 0a
// 0b
// 0c
// 0d
// 0e
// 1a
// 1b
// ..
// ..
// 4e