from

RxJS 5 from

by Echyzen

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.2.1/rxjs.umd.js"></script>
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>

JavaScript

// emit every 1s, take2
const source$ = rxjs.interval(1000).pipe(rxjs.operators.take(2))

// map each emitted value from source$ to interval observable that takes 5 values
const example$ = source$.pipe(
	rxjs.operators.map(val => {
  	return rxjs.interval(1000).pipe(
    	rxjs.operators.map(i => `Result (${val}): ${i}`),
      rxjs.operators.take(5)
    )
  })		
)
/*
	2 values from source will map to 2 inner observables that emit 	  every 1s combineAll uses combineLatest strategy, emitting the last value from each whenever either observable emits a value
*/

const combined$ = example$.pipe(rxjs.operators.combineAll())

/*
  output:
  ["Result (0): 0", "Result (1): 0"]
  ["Result (0): 1", "Result (1): 0"]
  ["Result (0): 1", "Result (1): 1"]
  ["Result (0): 2", "Result (1): 1"]
  ["Result (0): 2", "Result (1): 2"]
  ["Result (0): 3", "Result (1): 2"]
  ["Result (0): 3", "Result (1): 3"]
  ["Result (0): 4", "Result (1): 3"]
  ["Result (0): 4", "Result (1): 4"]
*/
const subscribe = combined$.subscribe(val => console.log(val))