uniapp中OnShow获取缓存

发布时间 2024-01-10 09:34:32作者: jialiangzai
点击查看代码
function getStorage(key) {
  return new Promise((resolve, reject) => {
    uni.getStorage({
      key: key,
      success: (res) => {
        resolve(res.data);
      },
      fail: (err) => {
        reject(null); // 修改这里,如果失败了,返回null
      }
    });
  });
}

onShow(async (e) => {
  try {
    // 使用Promise.all同时获取info和yjtoken
    const [info, yjtoken] = await Promise.all([
      getStorage('info'),
      getStorage('yjtoken')
    ]);
    
    // 只在这里设置loginShow.value的值,这样就可以避免先设为true
    if (info && yjtoken) {
      app.globalData.info = info;
      interInfo.value = info;
      loginShow.value = false; // 如果都有值,不显示登录
    } else {
      loginShow.value = true; // 如果任何一个没有值,显示登录
    }
  } catch (error) {
    console.error('Error getting storage items:', error);
    // 出错时,可能需要显示登录,也可能需要其他错误处理
    loginShow.value = true;
  }
});