我可以同步获得可观察值吗? (Angular/ReactiveX)
can I get an observable value synchronically? (Angular/ReactiveX)
我的项目中有一个名为 isPossible
的 boolean observable,它是这样声明的:
isPossible: Observable<boolean>;
我想添加条件,这是 isPossible
是 true
,但我想将它添加到同步评估其他条件的地方,这是我知道如何使用的唯一方法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,例如在这种情况下,我们将同时产生 true
和 false
的 isPossible observable 更改为仅在 [=11] 上产生的 isPossible observable =] 与 .filter(e => e)
.
接下来,您可以订阅可观察对象。 subscribe
激活可观察序列。订阅后,subscribe 中的代码将在每次产生值时执行。
我的项目中有一个名为 isPossible
的 boolean observable,它是这样声明的:
isPossible: Observable<boolean>;
我想添加条件,这是 isPossible
是 true
,但我想将它添加到同步评估其他条件的地方,这是我知道如何使用的唯一方法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,例如在这种情况下,我们将同时产生 true
和 false
的 isPossible observable 更改为仅在 [=11] 上产生的 isPossible observable =] 与 .filter(e => e)
.
接下来,您可以订阅可观察对象。 subscribe
激活可观察序列。订阅后,subscribe 中的代码将在每次产生值时执行。