我的项目中有一个布尔值 observable isPossible
,它是这样声明的:
isPossible: Observable<boolean>;
我想添加条件 this is isPossible
,true
但我想将它添加到同步评估其他条件的地方,我知道如何使用 observable 的值的唯一方法是使用异步管道......{{isPossible | async}}
但是在这里我需要同步获取它...我该怎么做?
将 Observable 视为一种 Promise,它可以随着时间的推移返回多个值。在这种情况下,您正在创建发出布尔值的异步流。您可以对这些值做出反应的方式是将您的操作放在subscribe
流上,然后您将获得真正的价值:
isPossible.subscribe((latestIsPossibleValue: boolean) => {
if (latestIsPossibleValue) {
// do something on 'true'
}
})
您能否详细介绍一下您的案例?
你可以这样做isPossible.filter(e => e).subscribe((e) => { ... })
。
在 Rx 中,您首先将 observable 转换为其他 observable,例如,在这种情况下,我们将同时产生true
and的 isPossible observable 更改为false
仅产生true
with的 observable .filter(e => e)
。
接下来,您可以订阅 observable。subscribe
激活可观察序列。订阅后,订阅中的代码将在每次产生值时执行。
想要同步时不要放置异步
{{isPossible}}
最终不要让它可观察,只是一个简单的布尔值