/** * App 启动就绪状态 * * App.vue onLaunch 中调用 markReady() * 页面 onMounted 中调用 waitForReady() 等待登录完成 */ let _resolve: () => void const _ready = new Promise(resolve => { _resolve = resolve }) /** 标记 App 启动完成(登录成功) */ export function markReady() { _resolve() } /** 等待 App 就绪,最多等 8 秒超时(小程序登录可能较慢) */ export function waitForReady(): Promise { return Promise.race([ _ready, new Promise(resolve => setTimeout(resolve, 8000)) ]) }