This lesson will show when to apply groupBy in the real world. This RxJS operator is best suited when a source observable represents many data sources, e.g. an observable for multitouch events.
const busObservable = Rx.Observable.of( {code: ‘en-us‘, value: ‘-TEST-‘}, {code: ‘en-us‘, value: ‘hello‘}, {code: ‘es‘, value: ‘-TEST-‘}, {code: ‘en-us‘, value: ‘amazing‘}, {code: ‘pt-br‘, value: ‘-TEST-‘}, {code: ‘pt-br‘, value: ‘olá‘}, {code: ‘es‘, value: ‘hola‘}, {code: ‘es‘, value: ‘mundo‘}, {code: ‘en-us‘, value: ‘world‘}, {code: ‘pt-br‘, value: ‘mundo‘}, {code: ‘es‘, value: ‘asombroso‘}, {code: ‘pt-br‘, value: ‘maravilhoso‘} ).concatMap(x => Rx.Observable.of(x).delay(500)); const all = busObservable .groupBy(obj => obj.code) // 2-d obs .mergeMap(innerObs => innerObs.skip(1).map(obj => obj.value)); all.subscribe(x => console.log(x));
/* "hello" "amazing" "olá" "hola" "mundo" "world" "mundo" "asombroso" "maravilhoso" */
[RxJS] Use groupBy in real RxJS applications
原文:http://www.cnblogs.com/Answer1215/p/6296656.html