if (!uni.getStorageSync("WxAuthorization")) { try { const res = await uni.login(); const data = await uni.$u.api.login.authLogin({ loginCode: res.code }); uni.setStorageSync("WxAuthorization", "Bearer " + data.token); uni.setStorageSync("loginStatus", data.loginStatus); } catch (error) { console.error(error); } } getSwiperPic(); getNotice(); getTools(); await setDictData(); loadList(getList); 请优化此段代码
时间: 2024-02-02 21:02:32 浏览: 612
以下是我对该段代码的优化建议:
1. 使用 async/await 替代回调函数,提高代码可读性。
2. 将 getSwiperPic、getNotice、getTools、setDictData 和 loadList 方法使用 Promise.all() 进行并行调用,提高代码执行效率。
3. 将 try-catch 包装成一个函数,使得代码更易读。
4. 将 uni.setStorageSync 方法的调用改为 Promise 化的异步方法,避免阻塞主线程。
优化后的代码如下:
```
async function init() {
try {
if (!uni.getStorageSync("WxAuthorization")) {
const { code } = await uni.login();
const { token, loginStatus } = await uni.$u.api.login.authLogin({ loginCode: code });
await uni.setStorage({ key: "WxAuthorization", data: "Bearer " + token });
await uni.setStorage({ key: "loginStatus", data: loginStatus });
}
await Promise.all([
getSwiperPic(),
getNotice(),
getTools(),
setDictData(),
]);
loadList(getList);
} catch (error) {
console.error(error);
}
}
init();
```
阅读全文