Class: ReducedValue<T>

将一系列事件转换为一个值的变化的对象,就像redux那样。

这应当是修改“状态”的唯一途径,所有状态的变化都应当通过这个对象来完成。

触发状态变化需要配合“事件” EventRegistry 来完成。

注意:一般不要使用默认构造函数,而是使用 builder 来构建ReducedValue对象。

Type parameters

Name
T

Implements

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new ReducedValue<T>(initialValue, reducers)

Type parameters

Name
T

Parameters

Name Type
initialValue T
reducers ValueReducer<any, T>[]

Properties

_value

Private _value: any


listenAllEvents

Private listenAllEvents: any


resolved

Readonly resolved: boolean

Implementation of

AsyncValue.resolved

Accessors

value

get value(): T

获取当前的值

Returns

T

Implementation of

AsyncValue.value

Methods

builder

Static builder<T>(): ReducedValueBuilder<T>

通过builder模式创建一个ReducedValue对象。

Type parameters

Name
T

Returns

ReducedValueBuilder<T>


lastEventValue

Static lastEventValue<EVENT>(event, initialValue, filter?): ReducedValue<EVENT>

简化版的 lastMappedEventValue,当无需映射事件值时,可以使用这个方法。

Type parameters

Name
EVENT

Parameters

Name Type
event EventRegistry<EVENT>
initialValue EVENT
filter? (event: EVENT) => boolean

Returns

ReducedValue<EVENT>

See

lastMappedEventValue


lastMappedEventValue

Static lastMappedEventValue<EVENT, VALUE>(event, initialValue, mapper, filter?): ReducedValue<VALUE>

快速创建一个只保留最后一个事件的ReducedValue对象。一般用于实现“事件”到“状态”的映射。

Type parameters

Name
EVENT
VALUE

Parameters

Name Type Description
event EventRegistry<EVENT> 要转化为状态的事件
initialValue VALUE 初始状态,即事件首次触发前的状态
mapper (event: EVENT) => VALUE 事件对象到状态的映射函数
filter? (event: EVENT) => boolean 事件过滤函数。如果返回false,则不会触发状态变化

Returns

ReducedValue<VALUE>

一个ReducedValue对象