到底是这样 currentFetchPromise = null; currentAbortController = null; 还是这样 currentFetchPromises = new Map<number, Promise<void>>(); currentAbortControllers = new Map<number, AbortController>();这取决于当前 Store 内部使用的并发控制数据结构:
如果像
useAcceptTypeOptionForAcceptStore这样,同一时间只会有一个请求(因为只加载一个列表),那么用单 Promise 和单 AbortController,重置时写:ts
currentFetchPromise = null; currentAbortController = null;
这是正确且简洁的。
如果像之前讨论的
useModuleStore那样,需要同时管理多个独立请求(按不同模块 ID 并发),那么就需要用Map来存储每个请求的 Promise 和 AbortController,重置时写:ts
currentFetchPromises = new Map<number, Promise<void>>(); currentAbortControllers = new Map<number, AbortController>();
简单总结:
单个请求 → 单变量,
= null多个并发请求 → Map,
= new Map()
当前useAcceptTypeOptionForAcceptStore是单请求场景,所以保持原来的= null写法是正确的,不要改成 Map。