В моем приложении Angular 8 я звоню в сервис Api, затем записываю данные в хранилище сущностей Akita, которое будет использоваться для последующих запросов. Я делаю это с помощью mergeMap для отправки запросов синхронно.
У меня есть несколько дополнительных запросов, которые я хочу выполнить параллельно с forkJoin с этой функцией, однако я обнаружил, что следующая проблема с функцией akita selectAll не вызывает функцию / событие onCompleted. Он возвращает данные, но onCompleted никогда не запускается. Оставить наблюдаемое в неполном состоянии.
Если я уберу звонок в магазин Akita Entity. Я вижу вызов API для getTeams Observable, функция завершается. Я добавил код отладки в вызов хранилища сущностей akita и увидел, что onCompleted никогда не срабатывает. Я не уверен, почему, но, возможно, я делаю что-то неправильно.
Функция:
getTeams(): Observable<Team[]> {
return this.teamApiService.getTeams().pipe(
mergeMap((teams) => {
this.teamStore.set(teams);
return this.teamQuery.selectAll({ sortBy: 'name' });
})
);
}
Функция вызова:
this.teamStateService.getTeams().subscribe(
data => console.log('GOT getTeams:', data),
err => console.log('Error:', err),
() => console.log('getTeams: Completed')
);
Я должен увидеть следующие результаты:
GOT getTeams: ....
getTeams: Completed
Однако я просто получаю
GOT getTeams: ....