Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Hooke
/
xyxBooking-weapp
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
hookehuyr
2026-01-15 23:40:53 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
27e5461d48f298706ab87c2b3884c66a67809ee3
27e5461d
1 parent
dc0a7d46
fix(离线预订缓存轮询): 修复网络监听器注销后状态同步问题
确保网络监听器注销时同步清理相关状态,避免脏数据干扰后续流程 优化启用轮询时的依赖检查逻辑,保证即时生效
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
1 deletions
src/composables/useOfflineBookingCachePolling.js
src/composables/useOfflineBookingCachePolling.js
View file @
27e5461
...
...
@@ -170,7 +170,14 @@ const teardown_network_listener = () => {
polling_state
.
network_listener
=
null
}
}
// 注销后,清空网络监听器引用,确保后续调用能正常工作
polling_state
.
network_listener
=
null
/**
* 核心目的:清空 network_usable = null 是为了让状态和监听器的生命周期完全同步 —— 监听器注销后,其产生的网络状态也必须失效,避免 “无监听器却有状态” 的矛盾;
* 关键作用:通过让 should_run_polling() 直接返回 false,杜绝基于过期状态启动轮询的可能;
* 设计思维:体现了 “状态闭环” 的工程化思想 —— 任何状态都要有明确的产生、更新、销毁逻辑,不残留 “脏数据” 干扰后续流程。
*/
// 清空网络可用性状态,确保后续判断逻辑能正常工作
polling_state
.
network_usable
=
null
}
...
...
@@ -256,7 +263,11 @@ const release_polling_ref = () => {
export
const
enable_offline_booking_cache_polling
=
(
options
)
=>
{
normalize_options
(
options
)
// 核心防重复——如果已经启用,直接返回
/**
* 核心目的:对 app_enabled=true 的场景做兜底,确保轮询在 “已启用但异常停止” 时能被主动恢复,而非被动等待网络变化;
* 执行逻辑:先保证网络监听器(轮询的依赖)就绪,再尝试启动轮询,且利用 start_offline_booking_cache_polling 的幂等性避免重复;
* 设计思维:体现了 “主动调用需即时生效” 的用户体验考量,以及 “依赖前置检查” 的工程化思维 —— 先保证依赖(监听器)就绪,再执行核心操作(启动轮询)。
*/
if
(
polling_state
.
app_enabled
)
{
ensure_network_listener
().
then
(()
=>
start_offline_booking_cache_polling
(
polling_state
.
last_options
||
{}))
return
...
...
Please
register
or
login
to post a comment