waitForPages
等待UniApp页面栈建立,通过轮询检查页面栈状态。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.getCurrentPages | UniApp['getCurrentPages'] | 获取当前页面栈 |
deps.setTimeout | typeof setTimeout | 超时函数 |
环境要求
- UniApp环境: 使用UniApp API
函数签名
typescript
function waitForPages(
deps: WaitForPagesDeps,
timeout?: number
): Promise<any[]>
interface WaitForPagesDeps {
getCurrentPages: UniApp['getCurrentPages']
setTimeout: typeof setTimeout
}参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
deps | WaitForPagesDeps | 是 | - | 依赖注入对象 |
timeout | number | 否 | 5000 | 超时时间(毫秒) |
返回值
| 类型 | 说明 |
|---|---|
Promise<any[]> | Promise,成功时返回页面栈数组,超时时抛出错误 |
异常
| 错误类型 | 触发条件 | 错误信息 |
|---|---|---|
Error | 等待超时 | 等待页面栈超时 |
工作原理
- 开始轮询:每100毫秒检查一次页面栈
- 检查页面栈:调用
getCurrentPages()获取当前页面栈 - 判断结果:
- 如果页面栈不为空,立即返回页面栈数组
- 如果超过超时时间,抛出错误
- 否则继续等待
- 返回结果:成功时返回页面栈数组
适用于需要在页面栈建立后执行操作的场景,如获取当前页面路由等。