我是RxJS的新手,正在寻求有关如何进行以下过程的概念性帮助:
我努力的最后一部分。我想象一个信号灯或某种“门”:
我发现this code使用redux实现门。那有必要吗?
或者,可以通过BehaviorSubject
实现门吗?
答案 0 :(得分:0)
我找到了解决方案!该代码可用here。
门 使用BehaviorSubject
使单例保持状态。通过应用过滤器,我获得了一个阻挡门,当下层门被抬起时,该阻挡门将允许通过:
const gate$ = new BehaviorSubject(true); // open at first
const openGate$ = gate$.pipe(
filter(x => x === true),
take(1) // take only one event, then complete
);
// wait for the gate to open
openGate$.subscribe(() => {
// do something
});
// close the gate:
gate$.next(false);
// and open it again
gate$.next(true);
通过使用BehaviourSubject
,门被初始化并默认打开。