我的项目中有一个名为isPossible
的boolean observable,这是它声明的方式:
isPossible: Observable<boolean>;
我想添加条件isPossible
是true
,但是我想将它添加到其他条件同步评估的地方,这是我知道如何使用值的唯一方法observable是异步管道......就像{{isPossible | async}}
一样,但是我需要同步得到它......我怎么能这样做?
答案 0 :(得分:2)
将Observable视为一种可以随时间返回多个值的Promise。在这种情况下,您将创建发出布尔值的异步流。您对值的反应方式是将您的操作放在流的subscribe
上,然后获得真正的价值:
isPossible.subscribe((latestIsPossibleValue: boolean) => {
if (latestIsPossibleValue) {
// do something on 'true'
}
})
您能否进一步了解您所拥有的案例?
答案 1 :(得分:0)
想要同步
时不要放异步class TimerExpand
{
public int counter = 0;
public System.Threading.Timer threadTimer;
}
public static void Temps()
{
TimerExpand t_expand = new TimerExpand();
TimerCallback timerDelegate = new TimerCallback(GetTime);
System.Threading.Timer timer = new System.Threading.Timer(timerDelegate, t_expand, 0, 1000);
t_expand.threadTimer = timer;
}
public static void GetTime(object etat)
{
TimerExpand t_expand = (TimerExpand) etat;
t_expand.counter++;
}
private DateTime actualDate;
public static Stopwatch sw;
并且最终没有使它成为Observable,只是一个简单的布尔
答案 2 :(得分:0)
您可以isPossible.filter(e => e).subscribe((e) => { ... })
。
在Rx中,您首先将可观察对象转换为其他可观察对象,例如在这种情况下,我们将同时生成true
和false
的isPossible observable更改为仅在true
上生成的observable与.filter(e => e)
。
接下来,您可以订阅observable。 subscribe
激活可观察序列。订阅后,订阅中的代码将在每次产生值时执行。