У меня есть следующий блок кода в моем ngOnInit
, как показано ниже:
this.subscriptions = this.formService.getFormFromApi(this.formId)
.pipe(
concatMap(theForm => this.formService.getFormStructure(theForm))
).pipe(
take(1),
tap(tree => { this.treeNodeData = tree; }),
(finalize(() => this.isTreeLoading = false))
).subscribe();
...
this.subscriptions.add(
combineLatest(
this.fileService.getFiles(this.formId),
this.formService.questionsList
).pipe(
tap(arrResult => {
this.fileData = arrResult[0];
this.test = arrResult[1];
console.log("fired.")
})
).subscribe()
);
...
Идея заключается в следующем: Когда определение столбца изменяется, как определено questionsList
, я буду sh, чтобы повторно отобразить таблицу. Я планирую сделать это, снова получив файлы (не беспокойтесь о повторном вызове http. Когда это сработает, я заменю logi c на что-то более эффективное)
Однако, даже когда BehaviorSubject
постоянно изменяет значения (столбцы для отображения в таблице), результат не обновляется. По сути, «срабатывает» не запускается после первой загрузки страницы.
Почему это происходит? Это потому, что http-вызов завершен, а questionsList
- нет? У меня было представление, что combineLatest
будет срабатывать до тех пор, пока один из наблюдаемых что-то излучает?