2

我的项目中有一个布尔值 observable isPossible,它是这样声明的:

  isPossible: Observable<boolean>;

我想添加条件 this is isPossibletrue但我想将它添加到同步评估其他条件的地方,我知道如何使用 observable 的值的唯一方法是使用异步管道......{{isPossible | async}}但是在这里我需要同步获取它...我该怎么做?

4

3 回答 3

2

将 Observable 视为一种 Promise,它可以随着时间的推移返回多个值。在这种情况下,您正在创建发出布尔值的异步流。您可以对这些值做出反应的方式是将您的操作放在subscribe流上,然后您将获得真正的价值:

isPossible.subscribe((latestIsPossibleValue: boolean) => {
  if (latestIsPossibleValue) {
    // do something on 'true'
  }
})

您能否详细介绍一下您的案例?

于 2016-06-08T10:01:18.613 回答
0

你可以这样做isPossible.filter(e => e).subscribe((e) => { ... })

在 Rx 中,您首先将 observable 转换为其他 observable,例如,在这种情况下,我们将同时产生trueand的 isPossible observable 更改为false仅产生truewith的 observable .filter(e => e)

接下来,您可以订阅 observable。subscribe激活可观察序列。订阅后,订阅中的代码将在每次产生值时执行。

于 2016-06-10T00:34:39.207 回答
0

想要同步时不要放置异步

{{isPossible}}

最终不要让它可观察,只是一个简单的布尔值

于 2016-06-08T09:56:28.820 回答