In the previous example we learned how to combine multiple HTTP Requests into one stream with `forkJoin`.
Often operators are special forms or sub forms of other operators.
If we take a look at the overview of combination patterns we realize that tow of them look very similar, forkJoin and combine.
If we take a look at the overview of combination patterns we realize that two of them look very similar, forkJoin and combine.
Both combine the values of the source Observables to one emission, but `combineLatest` in comparison to `forkJoin` does not rely
on all sources to complete. Thus allowing us to process ongoing Observables. If any of the sources emits **a new value**, the
result will update to the **latest values** of each source.


_forkJoin no emission if not all complete_
An example of processing ongoing Observables with `combineLatest`:
@@ -47,7 +49,9 @@ As stated above, the `forkJoin` creation function waits until every source raise
This example shows how `forkJoin` only emits the last value after all sources `completed`.

_forkJoin all complete last_
Here you can see how `forkJoin` will never emit any value, because `a$` does not `complete`.
