为什么不调用第二个示例的订阅方法?
在这两个示例中,管道内的所有日志都按预期工作。
工作示例:(但使用硬编码数据和创建者):
of([
{tableName: 'table1', firstName: 'name1', lastName: 'lastName1'},
{tableName: 'table1', firstName: 'name2', lastName: 'lastName2'},
{tableName: 'table2', firstName: 'name3', lastName: 'lastName3'},
{tableName: 'table2', firstName: 'name4', lastName: 'lastName4'}
]).pipe(
tap(data => console.log('amount of records', data.length)),
mergeMap((searchResult) => searchResult),
groupBy(b => b.tableName),
mergeMap(group => {
console.log('groupKey', group.key);
return group.pipe(toArray());
})
).subscribe(val => console.log(val));
问题代码:(使用直接来自 ngrx-store 的数据和与上面的代码工作示例相同的数据结构)
this.store.pipe(
select(selectSearchResult),
tap(data => console.log('amount of records', data.length)),
mergeMap((searchResult) => searchResult),
groupBy(b => b.tableName),
mergeMap(group => {
console.log('groupKey', group.key);
return group.pipe(toArray());
})
).subscribe(val => console.log(val)); // <- this is not called!?
我希望为每个组调用 subscribe 方法,就像上面使用硬编码数据的工作示例一样。但具有讽刺意味的是,订阅方法没有被调用?!
慕斯709654
白衣染霜花
相关分类