Observable类是Observable模式的简单实现。不过有一点特殊性:给定的可观察对象可以使用特定的掩码值通知其观察者,只有使用该掩码值注册的观察者才会收到通知。这可以实现更细粒度的执行,而不必依赖多个不同的可观察对象。例如,您可能有一个具有四种不同类型通知的给定可观察对象:移动(掩码=0x01)、停止(掩码=0x02)、右转(掩码=0X04)、左转(掩码=0X08)。给定的观察者可以仅使用移动和停止(mask=0x03)注册自身,然后仅当这两种情况中的一种发生时才会收到通知,并且永远不会向左转/右转。
Members
Methods
创建新的可观察对象
add(callback,eventState,mask,insertFirst,scope,unregisterOnFirstCall) → Nullable<Observer<T>>
使用指定的回调创建新的观察者
Name | Type | Description |
---|---|---|
callback |
(eventData: T | 将为该观察者执行的回调 |
mask |
number | optional用于筛选观察者的掩码 |
insertFirst |
boolean | optional如果为true,则回调将插入第一个位置,因此在其他位置之前执行。如果为false(默认行为),则回调将插入最后一个位置,在所有其他位置都已存在之后执行。 |
scope |
any | optional要从中调用回调的可选范围 |
unregisterOnFirstCall |
boolean | optional下一次通知后是否要注销观察者 |
addOnce(callback,eventState) → Nullable<Observer<T>>
使用指定的回调创建新的观察者,并在下一次通知后注销
Name | Type | Description |
---|---|---|
callback |
(eventData: T | 将为该观察者执行的回调 |
从可观察对象中移除观察者
Name | Type | Description |
---|---|---|
observer |
Nullable<Observer<T>> | 要删除的观察者的实例 |
从可观察对象中移除回调
Name | Type | Description |
---|---|---|
callback |
(eventData: T | 要删除的回调 |
scope |
any | optional可选作用域。如果使用,则仅删除具有此作用域的回调 |
将可观察对象移动到观察者列表的顶部,使其在收到通知时首先被调用
Name | Type | Description |
---|---|---|
observer |
Observer<T> | 要移动的观察者 |
将可观察对象移动到观察者列表的底部,使其在收到通知时最后被调用
Name | Type | Description |
---|---|---|
observer |
Observer<T> | 要移动的观察者 |
通过使用给定数据调用各自的回调来通知所有观察者如果执行了所有观察者,则返回true;如果观察者将SkipNextObserver设置为true,则返回false,然后阻止后续观察者执行
Name | Type | Description |
---|---|---|
eventData |
T | 要发送给所有观察者的数据 |
mask |
number | optional当前通知的掩码(具有不兼容掩码(即mask&observer.mask==0)的观察者将不会被通知) |
target |
any | optional状态的原始目标 |
currentTarget |
any | optional状态的当前目标 |
notifyObserversWithPromise(eventData,mask,target,currentTarget) → Promise<T>
调用它将执行每个回调,期望它是一个承诺或返回一个值。如果在链中的任何一点上,一个函数失败,承诺将失败,执行将无法继续。当需要一系列事件(有时是异步事件)来初始化某个对象时,这非常有用所有回调都将被执行,这一点至关重要。回调的顺序保持不变,回调不会并行执行。
Name | Type | Description |
---|---|---|
eventData |
T | 要发送到每个回调的数据 |
mask |
number | optional用于过滤默认为-1的观察者 |
target |
any | optional回调目标(请参阅EventState) |
currentTarget |
any | optional在冒泡阶段 当前对象 |
通知特定的观察者
Name | Type | Description |
---|---|---|
observer |
Observer<T> | 要通知的观察者 |
eventData |
T | 要发送到每个回调的数据 |
mask |
number | optional用于过滤默认为-1的观察者 |
获取一个布尔值,指示可观察对象是否至少有一个观察者@returnss true表示可观察对象至少注册了一个观察者
清除观察者名单
clone() → Observable<T>
克隆当前的可观察对象@returns 返回一个新的可观察值
这个可观察对象是否处理注册了给定掩码的观察者
Name | Type | Description |
---|---|---|
mask |
number | optional要测试的掩码 |