根据动作配置的门闩,在启用时可以“留住”当前的值,不再更新.
启用和禁用的动作是通过事件触发的;
可以用于实现诸如:
等功能。
注意:该类应当配合EventRegistry使用,不要直接调用gate和open方法。
| Name | 
|---|
T | 
new GatedLatch<T>(getter)
| Name | 
|---|
T | 
| Name | Type | 
|---|---|
getter | 
() => T | 
Private _gated: any
Private _value: any
Private gate: any
进入门闩状态,此时value的值将保持当前值,不再更新
Private Readonly getter: any
Private open: any
退出门闩状态,此时value的值将会跟随getter的值
get value(): null | T
获取当前的值;如果门闩开启,则返回上一次的值,否则与getter的值同步
null | T
configureWithEvent<E>(event, mapper): () => void
根据事件配置门闩是否开启
| Name | 
|---|
E | 
| Name | Type | Description | 
|---|---|---|
event | 
EventRegistry<E> | 
相关的事件 | 
mapper | 
(event: E) => boolean | 
事件映射函数,返回true表示启用门闩,返回false表示关闭门闩 | 
fn
取消函数
(): void
根据事件配置门闩是否开启
void
取消函数