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);
});
*/