在定义可观察的组合之前先分配结果

时间:2019-02-04 05:37:21

标签: angular rxjs observable

我有一个组件,可通过异步管道打印可观察值。

初始化组件时,将调用服务中的方法,该方法将值异步分配给一系列可观察值。 我需要该服务来发出这些可观察值的组合结果以供打印组件。

未通知组件。我认为问题在于,当订阅​​模板时,我正在组合的可观察对象尚未定义。有什么办法可以使这项工作完成吗?

Stackblitz

1 个答案:

答案 0 :(得分:0)

  • 首先,要模拟HTTP调用,您需要使用of() + delay()
  • 您的组件也是根组件,因此您永远不会在@Input字段中获得价值。
  • 主要问题是,您需要组合init()initTransformedValue()方法,因为如果调用init(),它将对可观察对象(或未定义对象)执行最新的组合,则需要重新分配稍后在initTransformedValue()中,因此正确的顺序是 1。 为避免复杂性,最好将所有内容组合到1种方法中,方法返回initTransformedValue(),使用result $。必需可观察的。

Stackblitz demo. 希望有帮助。