waitMS
waitMS方法用于等待一段固定毫秒数后继续执行,返回一个 Promise 对象。内部基于 setTimeout 实现,是 setTimeout 的 Promise 化封装。
语法
javascript
waitMS(ms)参数
msnumber
等待的毫秒数。需要为非负整数,传入负数时浏览器按 0 处理。
返回值
Promise<void> 在 ms 毫秒后 resolve 的 Promise,无 resolve 值。
描述
waitMS 将 setTimeout 包装为 Promise 形式,常用于在 async/await 流程中插入固定延时。相比于直接使用回调式 setTimeout,写法更简洁直观,便于与 Promise 链式调用配合。
注意事项
- 依赖运行环境的定时器 API(
setTimeout),在 web 与 node 之外的 JS 环境可能无法工作。 - 受事件循环机制影响,实际触发时间不会早于
ms,但可能略晚。 - 传入负数或非数字时,行为遵循浏览器对
setTimeout的处理(通常按 0 处理)。
示例
基础用法
与 await 配合使用
浏览器兼容
依赖定时器API
纵然 setTimeout 在浏览器和 node 环境下都被支持。 但定时器并不是 ES 本身的规范,它是依赖运行环境的。 如果你在 web 与 node 之外的 JS 环境(比如 Adobe 或者 Office)运行这个方法,那么它很可能是无法工作的。
性能考虑
- 内部仅使用一次
setTimeout,时间复杂度 O(1),开销极低。 - 由于是异步任务,不会阻塞主线程。
相关函数
- waitValue - 等待条件成立
- lazyChange - 惰性赋值代理
- Poll - 轮询工具
- throttleAsync / debounceAsync - 节流与防抖