fix(加载顺序): 远程数据按依赖顺序取 —— 身份 → 资料(含上游同步)→ 应用数据 (v26092215)
产品口径:上游有档案且有预产期时,页面应按 ①身份(openid/unionid/phone) → ②用户资料
(box_app /profile,会从上游同步预产期/小名/宝宝名)→ ③应用数据(今日足迹等)这个顺序加载。
- applyRemoteProfile() 改为**返回 Promise**(访客分支与已跑过也返回已决议的 Promise),
init() 里改为 `Promise.race([applyRemoteProfile(), 10s 超时]).then(() => { 应用数据 })`:
显式等 ② 落地再取 ③(资料库/记录/内容、今日脚印、首页工具卡、来信未读)。
⚠️ 加兜底超时的原因:② 万一挂住(上游不响应),③ 也必须照常发出,别让首页空等。
⚠️ 原来这五个 fetch 一起发、谁先回来谁写 DOM —— 竞态都是这么来的(今日脚印整块显隐被
profile 回来后又翻回去;来信提示的红点与卡各写一份判据)。顺序化后两者都收敛。
为什么这条重要(与今日脚印的显隐口径直接相关):上游有预产期时,第 ② 步会把预产期同步进来
(方案 A:读时同步覆盖),state.pregEmpty 因此为 false → 今日脚印不会被「未建档」门槛挡住。
即「上游有档案且有预产期」与「mama-box 未建档」不会同时成立(除非第 ② 步失败/超时)。
本地验证(桩后端,profile 故意延迟 0.6s 以观察顺序):
已建档(上游有预产期)→ 请求顺序 profile/pregnancy 先、footprint/tool-cards/laixin 后,
今日脚印整块显示并渲染 2 条真实事件;未建档 → 同样先取资料,今日脚印按口径隐藏。均无 JS 异常。
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>兜爸心选 · 孕育陪伴</title>
|
||||
<!-- V:26092214 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<!-- V:26092215 缓存版本标记:改 css/js 时同步 bump 该值(与 js/app.js 的 VER 同源),静态资源按 mtime 走 ETag 自动刷新 -->
|
||||
<link rel="stylesheet" href="mama-box.css">
|
||||
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
|
||||
<!-- 共享助手:授权/跳商城/位置上报(分享卡片同步,见 docs/h5-auth-standard.md 第四节) -->
|
||||
|
||||
Reference in New Issue
Block a user