我可以同步获得可观察值吗? (Angular/ReactiveX)

can I get an observable value synchronically? (Angular/ReactiveX)

我的项目中有一个名为 isPossible 的 boolean observable,它是这样声明的:

  isPossible: Observable<boolean>;

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

不要在需要同步的时候放异步

{{isPossible}}

最终不要让它成为 Observable,只是一个简单的布尔值

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

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

能否请您详细说明您的案例?

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

在 Rx 中,您首先将 observables 转换为其他 observables,例如在这种情况下,我们将同时产生 truefalse 的 isPossible observable 更改为仅在 [=11] 上产生的 isPossible observable =] 与 .filter(e => e).

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