useTimeout
手动调度一个会自动清理并始终调用最新回调的定时器。
签名
ts
function useTimeout(
callback: () => void,
delay?: number,
): {
run: (delay?: number) => void;
cancel: () => void;
};基本用法
关键行为
run()使用默认delay,也可以临时传入新的延迟时间。- 再次调用
run()会取消上一次尚未执行的定时器。 - 回调变化时不会丢失最新实现,卸载时会自动取消定时器。
注意事项
- 当默认
delay和run(delay)都未传入时,不会创建定时器。 cancel()只取消尚未执行的定时器,不会触发回调。