我已经在我的项目,该项目被称为isPossible
一个布尔观察到的,这是怎么声明:我可以同时获得可观察值吗? (角/ ReactiveX)
isPossible: Observable<boolean>;
我想补充的条件,这是isPossible
是true
,但我想它添加到其他条件同步评估的地方,我知道如何使用可观察值的唯一方法是使用异步管道...就像{{isPossible | async}}
,但是在这里我需要同步获取它......我该怎么做?
我已经在我的项目,该项目被称为isPossible
一个布尔观察到的,这是怎么声明:我可以同时获得可观察值吗? (角/ ReactiveX)
isPossible: Observable<boolean>;
我想补充的条件,这是isPossible
是true
,但我想它添加到其他条件同步评估的地方,我知道如何使用可观察值的唯一方法是使用异步管道...就像{{isPossible | async}}
,但是在这里我需要同步获取它......我该怎么做?
思考的观察为一种承诺的,可以返回更多而不是一段时间的价值。在这种情况下,您正在创建发布布尔值的异步流。您可以为值的反应方式是把流上的subscribe
你的行动,然后你得到真正的价值:
isPossible.subscribe((latestIsPossibleValue: boolean) => {
if (latestIsPossibleValue) {
// do something on 'true'
}
})
你能否扩展更多的你已经得到的情况?
你可以做isPossible.filter(e => e).subscribe((e) => { ... })
。
处于RX,你先转换成可观察其他观测,例如,在这种情况下,我们改变isPossible观察到能产生既true
和false
,进入一个只有true
产生具有.filter(e => e)
。
接下来,您可以订阅observable。 subscribe
激活可观察序列。一旦订阅,订阅内的代码将在每次产生一个值时执行。
而不是使用内部订阅'if(latestIsPossibleValue)',我会使用'.filter((latestIsPossibleValue:boolean )=> latestIsPossibleValue)'订阅之前。 – Dorus