我有缓冲分组可观测量
class Hero {
id: number;
name: string;
}
const HEROES: Hero[] = [
{ id: 11, name: 'Narco' },
{ id: 12, name: 'Narco' },
{ id: 13, name: 'Bombasto' },
{ id: 14, name: 'Bombasto' },
{ id: 15, name: 'Bombasto' },
{ id: 16, name: 'Dynama' },
{ id: 17, name: 'Dynama' },
{ id: 18, name: 'Dynama' },
{ id: 19, name: 'Dynama' },
{ id: 20, name: 'Dynama' }
];
我想创建可观察到的,通过name
对待HEROES
阵列作为源,组阵列和下面的类和阵列发射的结果作为一个单一的阵列,即,我应该得到三个阵列,一个用于Narco
,一个用于Bombasto
,另一个用于Dynama
。
我可以创建源观察到如下
var heroSource = Observable.create((observer:any) => {
HEROES.forEach((hero: Hero) => {
observer.next(hero);
})
});
我然后可以使用groupBy
,即一群英雄,
var groupHeroSource = heroSource
.groupBy((hero: Hero) => {return hero.name});
这实际上给了我许多可观,因为有不同的名称我的HEROES
阵列(在这种情况下是三个)。但是,这些将作为序列发出,理想情况下我希望buffer
直到heroSource
完成。我如何在我的分组观察值中使用rxjs中的buffer
运算符,以便发出单个集合?