fix(AdPage): 优化广告配置和家庭状态检查的错误处理逻辑
改进页面初始化流程,将并行请求改为串行处理,并添加错误处理和重试机制。当广告配置首次失败时,会在家庭状态检查成功后自动重试,而家庭状态检查失败则会抛出错误终止流程。
Showing
1 changed file
with
26 additions
and
5 deletions
| ... | @@ -237,11 +237,32 @@ const initializePage = async () => { | ... | @@ -237,11 +237,32 @@ const initializePage = async () => { |
| 237 | // 执行静默授权 | 237 | // 执行静默授权 |
| 238 | await performSilentAuth(); | 238 | await performSilentAuth(); |
| 239 | 239 | ||
| 240 | - // 并行获取广告配置和检查家庭状态 | 240 | + // 先获取广告配置 |
| 241 | - await Promise.all([ | 241 | + let adConfigSuccess = false; |
| 242 | - fetchAdConfig(), | 242 | + try { |
| 243 | - checkUserFamily() | 243 | + await fetchAdConfig(); |
| 244 | - ]); | 244 | + adConfigSuccess = true; |
| 245 | + } catch (adError) { | ||
| 246 | + console.error('获取广告配置失败,但继续执行后续逻辑:', adError); | ||
| 247 | + } | ||
| 248 | + | ||
| 249 | + // 无论广告配置是否成功,都要检查家庭状态 | ||
| 250 | + try { | ||
| 251 | + await checkUserFamily(); | ||
| 252 | + | ||
| 253 | + // 如果家庭状态检查成功,但广告配置失败了,再次尝试获取广告配置 | ||
| 254 | + if (!adConfigSuccess) { | ||
| 255 | + try { | ||
| 256 | + await fetchAdConfig(); | ||
| 257 | + console.log('重试获取广告配置成功'); | ||
| 258 | + } catch (retryError) { | ||
| 259 | + console.error('重试获取广告配置仍然失败:', retryError); | ||
| 260 | + } | ||
| 261 | + } | ||
| 262 | + } catch (familyError) { | ||
| 263 | + console.error('检查家庭状态失败:', familyError); | ||
| 264 | + throw familyError; // 家庭状态检查失败需要抛出错误 | ||
| 265 | + } | ||
| 245 | } catch (error) { | 266 | } catch (error) { |
| 246 | console.error('页面初始化失败:', error); | 267 | console.error('页面初始化失败:', error); |
| 247 | // 初始化失败时也要处理超时 | 268 | // 初始化失败时也要处理超时 | ... | ... |
-
Please register or login to post a comment