Files
YelayMaths/yelaymaths/app.js
T
2026-09-29 15:25:40 +08:00

43 lines
1.2 KiB
JavaScript

// app.js
const api = require('./utils/api');
const store = require('./utils/store');
App({
globalData: {
/** 初始化完成的 Promise,页面 onLoad 里等它即可,避免首屏读不到数据 */
ready: null,
},
onLaunch() {
this.globalData.ready = this.bootstrap();
},
/**
* 启动流程:配置再静默登录,最后拉已购课程。
*
* 每一步失败都不阻断启动:配置缺失时用兜底文案,登录失败时按未登录渲染。
* 旧版本在页面 data 里同步读缓存、而缓存由异步写入,首次安装必然报错,这里不再重蹈。
*/
bootstrap() {
const tasks = [
api
.getConfig()
.then((cfg) => store.setSiteConfig(cfg))
.catch((err) => console.warn('[app] 配置加载失败', err)),
api
.login()
.then(() => api.getEntitlements())
.then((list) => store.setEntitlements(list))
.catch((err) => console.warn('[app] 登录或权益加载失败', err)),
];
return Promise.all(tasks);
},
/** 页面调用它确保初始化完成。 */
ready() {
return this.globalData.ready || Promise.resolve();
},
});