title: difference between forkjoin and combineLatest rxjs
body: <p>Both are used to join multiple streams.</p>
  <p><a href="https://stackoverflow.com/questions/41797439/rxjs-observable-combinelatest-vs-observable-forkjoin#:%7E:text=forkJoin%20%2D%20When%20all%20observables%20complete,unsubscribe%20from%20combineLatest%20unlike%20forkJoin.">From this</a>
  I am confused between both, I read combineLatest make calls in sync mode and forkJoin calls parallel,</p>
  <p>I am trying this</p>
  <pre><code>combineLatest([
        of(null).pipe(delay(5000)),
        of(null).pipe(delay(5000)),
        of(null).pipe(delay(5000))
      ]).subscribe(() =&gt; console.log(new Date().getTime() - start));
  
  forkJoin([
        of(null).pipe(delay(5000)),
        of(null).pipe(delay(5000)),
        of(null).pipe(delay(5000))
      ]).subscribe(() =&gt; console.log(new Date().getTime() - start));
  </code></pre>
  <p>that prints</p>
  <pre><code>5004
  5014
  </code></pre>
  <p>every time result is arround 5 sec, if combineLatest sends request in sequence then why it is printing duration arround 5 sec.</p>
  <p>Is this correct or there is any other difference, any example code?</p>