在项目开发过程中,经?;嵊龅揭韵抡庵智榭觯?/p>
登录、获取用户信息等写在全局的src/app.js
文件中,在此处获取到用户信息;
在某些页面中,需要获取到用户信息后,再请求某些接口。
这个时候,我们就需要在这些页面中,先判断用户信息是否请求回来了。等请求回来了之后再请求该页面接口。
这种情况我们可以借助Promise
实现。具体实现方法如下:
- 在
src/lib/utils.js
文件中添加代码
let _loginResolve = null
// onEnvReady直接赋值Promise对象,不要用方法返回Promise对象。
export const onLoginReady = new Promise((resolve) => (_loginResolve = resolve));
export function setLoginReady() {
_loginResolve && _loginResolve(true);
}
- 修改
src/app.js
文件
import { setLoginReady } from '@/lib/utils'
async () => {
await login()
await getUserInfo()
// 登录,获取用户信息后,设置状态
setLoginReady()
}
- 在对应的页面,添加以下代码
import { onLoginReady } from '@/lib/utils'
onLoginReady.then(() => {
// 请求该页面接口
})