Store中关于重置的currentFetchPromises和currentAbortControllers
2026/9/5 8:49:06 网站建设 项目流程
到底是这样 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。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询