//emit array as a sequenceconstsource=Rx.Observable.from([1,2,3,4,5]);//demonstrating the difference between let and other operatorsconsttest= source.map(val => val +1)/* this would fail, let behaves differently than most operators val in this case is an observable *///.let(val => val + 2).subscribe(val =>console.log('VALUE FROM ARRAY: ', val));constsubscribe= source.map(val => val +1)//'let' me have the entire observable.let(obs =>obs.map(val => val +2))//output: 4,5,6,7,8.subscribe(val =>console.log('VALUE FROM ARRAY WITH let: ', val));
//emit array as a sequenceconstsource=Rx.Observable.from([1,2,3,4,5]);//let provides flexibility to add multiple operators to source observable then returnconstsubscribeTwo= source.map(val => val +1).let(obs => obs.map(val => val +2)//also, just return evens.filter(val => val %2===0) )//output: 4,6,8.subscribe(val =>console.log('let WITH MULTIPLE OPERATORS: ', val));
//emit array as a sequenceconstsource=Rx.Observable.from([1,2,3,4,5]);//pass in your own function to add operators to observableconstobsArrayPlusYourOperators= yourAppliedOperators => {returnsource.map(val => val +1).let(yourAppliedOperators);};constaddTenThenTwenty= obs =>obs.map(val => val +10).map(val => val +20);constsubscribe=obsArrayPlusYourOperators(addTenThenTwenty)//output: 32, 33, 34, 35, 36.subscribe(val =>console.log('let FROM FUNCTION:', val));