IdleTimer
Defined in: packages/utils/src/@browser/IdleTimer.ts:51
浏览器空闲检测。
监听 document 上的鼠标 / 键盘 / 触摸 / 滚轮 / 可见性变化等事件(capture + passive)。
每次事件把状态推回「不空闲」并重置计时;静默满 timeout 毫秒后推「空闲」。
依赖全局 document,只能在浏览器环境使用。用完必须 IdleTimer.destroy,
否则事件监听器会一直挂在 document 上。
Example
const timer = new IdleTimer({ timeout: 5000 });
timer.idle$.subscribe(idle => console.log(idle));
timer.start();
// ...
timer.destroy();
Constructors
Constructor
new IdleTimer(options?): IdleTimer;
Defined in: packages/utils/src/@browser/IdleTimer.ts:71
Parameters
| Parameter | Type | Description |
|---|---|---|
options? | IdleTimerOptions | 见 IdleTimerOptions;不传则 timeout 为 2000 |
Returns
IdleTimer
Throws
TypeError options.timeout 不是非负安全整数(不会静默回退默认值)
Properties
idle$
idle$: Observable<boolean>;
Defined in: packages/utils/src/@browser/IdleTimer.ts:65
空闲状态流。
行为化(订阅即拿到当前值,初始为 false),且已 distinctUntilChanged,
只在真正翻转时发射。IdleTimer.destroy 后该流 complete,不再发射。
Methods
destroy()
destroy(): void;
Defined in: packages/utils/src/@browser/IdleTimer.ts:118
释放全部资源:摘监听、清计时器、complete IdleTimer.idle$。
幂等,重复调用是安全的 no-op。不可逆——此后调用 IdleTimer.start / IdleTimer.stop 会抛错,需要继续检测请新建实例。
Returns
void
start()
start(): void;
Defined in: packages/utils/src/@browser/IdleTimer.ts:89
开始检测:绑定事件监听并立即把状态置为「不空闲」、重新起算 timeout。
幂等——重复调用不会重复绑定监听器,只是重置计时。
Returns
void
Throws
Error 实例已 IdleTimer.destroy;destroy 后的实例不可复活,请新建
stop()
stop(): void;
Defined in: packages/utils/src/@browser/IdleTimer.ts:106
暂停检测:摘掉事件监听并清掉计时器。
不会改变 IdleTimer.idle$ 的当前值,也不会 complete 它; 之后可以再 IdleTimer.start 恢复。幂等。
Returns
void
Throws
Error 实例已 IdleTimer.destroy