標籤:console delay concat group scribe code sso can for
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"*/
- The ‘groupBy‘ return a 2-d observable, can use ‘switchMap‘ or ‘mergeMap‘ to conver to 1-d observable.
[RxJS] Use groupBy in real RxJS applications