По какой причине не срабатывает combineLatest?
Есть два observable, скомбинированных в массив. Однако, когда приходит момент обновиться, обновление не вызывается. Просто не срабатывает обновление.
ngOnInit() {
if (this.contentViews$) {
const sources = [this.contentViews$, this.pluginContainerReducer.selectRightData().pipe(
switchMap((value) => of(value)))];
this.tabs$ = combineLatest(sources).pipe( //здесь ошибка?
switchMap(([views, test]: [ContentView[], DataItem[]]) => of(
views.map(view => ({
id: this.getTabId(view),
title: 'test',
contentView: view,
refreshButton: {iconName: 'redo-alt'},
titleTpl: this.btn,
} as ContentTabConfig),
),
)),
);
}
}
Ответы (1 шт):
Автор решения: JerryLee
→ Ссылка
combineLatest объединяет данные пришедшие из Observable-ов полученные из аргументов функции.
Если один из Observable-ов завершится так и не эмитнув ни одного значения combineLatest завершится. Так же если один из переданных Observable-ов не эмитнул никаких значений и не завершился, то combineLatest никогда не эмитнит значения и не завершится.
Вывод: надо смотреть, что происходит с каждый вашим Observable-ом