Class: GatedLatch<T>

根据动作配置的门闩,在启用时可以“留住”当前的值,不再更新.

启用和禁用的动作是通过事件触发的;

可以用于实现诸如:

  • 表单提交过程中,保持界面展示的值为用户输入的值,而不是当前生效的(旧)值,在提交完成后再切换回来

等功能。

注意:该类应当配合EventRegistry使用,不要直接调用gate和open方法。

Type parameters

Name
T

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new GatedLatch<T>(getter)

Type parameters

Name
T

Parameters

Name Type
getter () => T

Properties

_gated

Private _gated: any


_value

Private _value: any


gate

Private gate: any

进入门闩状态,此时value的值将保持当前值,不再更新


getter

Private Readonly getter: any


open

Private open: any

退出门闩状态,此时value的值将会跟随getter的值

Accessors

value

get value(): null | T

获取当前的值;如果门闩开启,则返回上一次的值,否则与getter的值同步

Returns

null | T

Methods

configureWithEvent

configureWithEvent<E>(event, mapper): () => void

根据事件配置门闩是否开启

Type parameters

Name
E

Parameters

Name Type Description
event EventRegistry<E> 相关的事件
mapper (event: E) => boolean 事件映射函数,返回true表示启用门闩,返回false表示关闭门闩

Returns

fn

取消函数

(): void

根据事件配置门闩是否开启

Returns

void

取消函数