Почему метод подписки во втором примере не вызывается?
Все журналы в конвейере работают, как и ожидалось, в обоих примерах.
ПРИМЕР РАБОТЫ: (но с использованием жестко закодированных данных и-creator):
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 и ту же структуру данных, что и в приведенном выше примере кода)
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!?
Мне бы хотелось, чтобы метод подписки вызывался для каждой группы, как в приведенном выше рабочем примере с жестко закодированными данными. Но метод подписки по иронии судьбы не вызывается?!
Пример элемента из массива, доставленного магазином: