RxJS 5 combine arrays

by brian428

HTML

<script src="https://npmcdn.com/@reactivex/[email protected]/dist/global/Rx.umd.js"></script>

JavaScript

// WORKS!!
let chartsArr = ['chartA', 'chartB', 'chartC'];
let delayed$ = Rx.Observable.from( chartsArr )
  .concatMap( ( value ) => {
    console.log( "concatMap", value, new Date().getTime() );
    return Rx.Observable.of( true ).delay(10); 
  })
  .last()
	.do( ( item ) => {
		console.log( "after last", item, new Date().getTime() );
	});
    //.concatAll();

delayed$.subscribe( ( val ) => {
	console.log( "done!", val, new Date().getTime() );
});






let sourceArr = ['chartA', 'chartB', 'chartC'];
let delayedStream = Rx.Observable.from( sourceArr )
    /*.map( (value) => { 
      console.log("returning value!", value, new Date());
    	return Rx.Observable.of(value).delay(1000); 
    })*/
    .concatMap( ( value ) => {
    	console.log( "concatMap", value, new Date().getTime() );
    	return Rx.Observable.of( value ).delay(10); 
    })
    .last();
    //.concatAll();

/*
const subscribe = delayedStream.subscribe( ( val ) => {
	console.log( "done!", val, new Date().getTime() );
});
*/









var items = ['chartA', 'chartB', 'chartC'];

const zipped = Rx.Observable.zip(
  Rx.Observable.from( items ),
  Rx.Observable.timer( 0, 10 ),  
  ( item, i ) => { 
  	console.log( "returning value!", item, i, new Date().getTime() );
  	return item;
  }
)
//.concatAll()
.do( ( item ) => {
	console.log( "after combineAll", item, new Date().getTime() );
});
/*
const subscribe = zipped.subscribe( (val) => {
	console.log( "done!", val, new Date() );
});
*/










/*
const source = Rx.Observable.of(array)
	.do( ( val ) => console.log( "after delay", val ) )
	.delay( 3000 )
  .map( (val) => {
  	console.log( "in map", val, new Date() );
    return Rx.Observable.of( val );
  });

const example = source
	.switchMap( (val) => {
  	console.log( "in combineAll.do", val );
    return Rx.Observable.of( val );
  });

const subscribe = example.subscribe( (val) => {
	console.log("done!", val);
});
*/