将一系列事件转换为一个值的变化的对象,就像redux那样。
这应当是修改“状态”的唯一途径,所有状态的变化都应当通过这个对象来完成。
触发状态变化需要配合“事件” EventRegistry 来完成。
注意:一般不要使用默认构造函数,而是使用 builder 来构建ReducedValue对象。
Name |
---|
T |
AsyncValue
<T
>new ReducedValue<T
>(initialValue
, reducers
)
Name |
---|
T |
Name | Type |
---|---|
initialValue |
T |
reducers |
ValueReducer <any , T >[] |
Private
_value: any
Private
listenAllEvents: any
Readonly
resolved: boolean
get
value(): T
获取当前的值
T
Static
builder<T
>(): ReducedValueBuilder
<T
>
通过builder模式创建一个ReducedValue对象。
Name |
---|
T |
ReducedValueBuilder
<T
>
Static
lastEventValue<EVENT
>(event
, initialValue
, filter?
): ReducedValue
<EVENT
>
简化版的 lastMappedEventValue,当无需映射事件值时,可以使用这个方法。
Name |
---|
EVENT |
Name | Type |
---|---|
event |
EventRegistry <EVENT > |
initialValue |
EVENT |
filter? |
(event : EVENT ) => boolean |
ReducedValue
<EVENT
>
See
lastMappedEventValue
Static
lastMappedEventValue<EVENT
, VALUE
>(event
, initialValue
, mapper
, filter?
): ReducedValue
<VALUE
>
快速创建一个只保留最后一个事件的ReducedValue对象。一般用于实现“事件”到“状态”的映射。
Name |
---|
EVENT |
VALUE |
Name | Type | Description |
---|---|---|
event |
EventRegistry <EVENT > |
要转化为状态的事件 |
initialValue |
VALUE |
初始状态,即事件首次触发前的状态 |
mapper |
(event : EVENT ) => VALUE |
事件对象到状态的映射函数 |
filter? |
(event : EVENT ) => boolean |
事件过滤函数。如果返回false,则不会触发状态变化 |
ReducedValue
<VALUE
>
一个ReducedValue对象