combineLatest and forkJoin
Explain how combineLatest and forkJoin each combine multiple Observables, and when to use one over the other.
Both combineLatest and forkJoin take multiple source Observables and combine their values into a single emission, but they answer fundamentally different questions and interviewers like this pair specifically because picking the wrong one produces very different (and sometimes very confusing) timing behavior.
combineLatest is like a live scoreboard updating the moment any single game's score changes, always showing the latest known score for every other game too. forkJoin is like waiting for every runner in a relay race to finish before announcing the combined final results all at once — and if one runner never crosses the finish line, the announcement never happens.