withTimeWindows()
function withTimeWindows<T>(
source,
debounce,
audit
): Observable<T>;
Defined in: packages/utils/src/async/withTimeWindows.ts:43
按窗口配置给一条流挂上防抖 / 采样。
Type Parameters
| Type Parameter | Description |
|---|---|
T | 流的值类型 |
Parameters
| Parameter | Type | Description |
|---|---|---|
source | Observable<T> | 源流 |
debounce | number | 防抖窗口毫秒数;非正有限值表示禁用 |
audit | number | 采样窗口毫秒数;非正有限值表示禁用 |
Returns
Observable<T>
挂好 operator 的流;两个窗口都禁用时原样返回 source(引用相等)
Remarks
两者同时启用时串联生效,顺序固定为 debounceTime → auditTime,不是二选一。
RAN-011:早先两个 operator 无条件串联,于是默认配置(0 / 0)下每个值仍要经过
debounceTime(0) 和 auditTime(0) 两层 asyncScheduler —— 同步消费者(Angular OnPush
视图的 markForCheck、Vue/React 的当拍重渲染)在当前周期内根本拿不到值。
禁用的窗口直接不进管道,让默认路径退化成同步透传。
逐段 pipe 而不是收集 operator 数组后 pipe(...operators):pipe 的重载按定长参数
声明,展开一个数组拿不到元组类型(TS2556)。
这份定义由 Angular 的 RxDBEntityChangeDirective 与 Vue/React 的 useEntityChange
共用(RVU-010):三端各抄一份必然漂移,而漂移的正是上面这些一字之差的判定。