feat(每日充值): 优化初始化数据的接口调用

This commit is contained in:
hzj 2026-05-23 19:36:28 +08:00
parent 6624db0a7c
commit 918bd1b484

View File

@ -876,6 +876,7 @@ const mainRewardVapRenderKey = computed(() => {
return `${mainRewardRenderKey.value}-vap-${mainRewardVapRetryVersion.value}` return `${mainRewardRenderKey.value}-vap-${mainRewardVapRetryVersion.value}`
}) })
let pageInitializationStarted = false let pageInitializationStarted = false
let pageInitializationPromise = null
const isLocalRewardAsset = (reward) => { const isLocalRewardAsset = (reward) => {
return Boolean(reward?.localRewardAsset) return Boolean(reward?.localRewardAsset)
@ -1106,8 +1107,13 @@ const initData = async () => {
console.error('Failed to initialize daily recharge activity rewards:', rewardResult.reason) console.error('Failed to initialize daily recharge activity rewards:', rewardResult.reason)
} }
if (taskResult.status === 'rejected' && rewardResult.status === 'rejected') { if (taskResult.status === 'rejected') {
throw taskResult.reason || rewardResult.reason throw taskResult.reason
}
return {
taskSuccess: true,
rewardSuccess: rewardResult.status === 'fulfilled',
} }
} }
@ -1144,9 +1150,16 @@ const preloadCriticalImages = async () => {
const completePreloading = async () => { const completePreloading = async () => {
try { try {
await initData() await initData()
pageInitializationStarted = true
try {
await preloadCriticalImages() await preloadCriticalImages()
} catch (preloadError) {
console.warn('Daily recharge critical assets preload failed:', preloadError)
}
return true
} catch (error) { } catch (error) {
console.error('棰勫姞杞借繃绋嬩腑鍙戠敓閿欒:', error) console.error('棰勫姞杞借繃绋嬩腑鍙戠敓閿欒:', error)
return false
} finally { } finally {
isLoading.value = false isLoading.value = false
queueRewardVapPreload(activityRewards.value) queueRewardVapPreload(activityRewards.value)
@ -1155,19 +1168,38 @@ const completePreloading = async () => {
const startPageInitialization = async () => { const startPageInitialization = async () => {
if (pageInitializationStarted) { if (pageInitializationStarted) {
return return true
} }
pageInitializationStarted = true if (pageInitializationPromise) {
await completePreloading() return pageInitializationPromise
}
pageInitializationPromise = completePreloading().finally(() => {
pageInitializationPromise = null
})
return pageInitializationPromise
} }
const connectToAppHandler = async () => { const connectToAppHandler = async () => {
try {
await runWithRetry(async () => {
const result = await connectToApp(async () => { const result = await connectToApp(async () => {
await startPageInitialization() const initialized = await startPageInitialization()
if (!initialized) {
throw new Error('Daily recharge initialization failed')
}
}) })
if (!result?.success) { if (!result?.success) {
throw new Error(result?.error || 'APP connection failed')
}
return result
}, 2, 1200)
} catch (error) {
console.error('Daily recharge connection or initialization failed:', error)
isLoading.value = false isLoading.value = false
} }
} }