Назначьте результат объединенных наблюдаемых до того, как они будут определены - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть компонент, который печатает значение наблюдаемой через асинхронный канал.

Когда компонент инициализируется, вызывается метод в службе, который асинхронно присваивает значение ряду наблюдаемых.Мне нужен сервис для выдачи результата комбинации этих наблюдаемых для компонента для печати.

Компонент не уведомляется.Я думаю, что проблема в том, что, когда шаблон подписан, наблюдаемые объекты, которые я объединяю, еще не определены.Есть ли способ сделать эту работу?

Stackblitz

1 Ответ

0 голосов
/ 04 февраля 2019
  • Прежде всего, для имитации HTTP-вызовов вам необходимо использовать of() + delay().
  • Также ваш компонент является корневым компонентом, поэтому вы никогда не получите значение в поле @Input.
  • Основная проблема заключается в том, что вам нужно объединить методы init() и initTransformedValue(), потому что если вы вызываете init(), он выполняет объединение последних для наблюдаемых (или неопределенных), которые вы переназначите позже вinitTransformedValue(), поэтому правильный порядок 1.вызовите initTransformedValue (), 2. вызовите init (), 3. используйте результат $. Чтобы избежать сложности, просто лучше объединить все эти вещи в 1 метод getTransformedValue () , который возвращает требуемую наблюдаемую.

Демонстрация Stackblitz. Надеюсь, это поможет.

...