首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在反应项目中止前将请求承诺存储在哪里?

在反应项目中止前将请求承诺存储在哪里?
EN

Stack Overflow用户
提问于 2022-03-08 13:50:25
回答 1查看 80关注 0票数 0

当连接脱机时,我想取消挂起的请求。为此,我将所有请求存储在window.myRequests数组中。当连接转离线后,我迭代window.myRequests数组并调用item.abort() --我使用的是作为客户端的超级代理--它工作得很好。但我不认为将请求存储在window对象中是正确的。

在哪里存储这个数组在一个反应应用程序?是正确的地址吗?

我想让它从组件树中的任何地方访问。因为我在一个地方处理在线/离线状态。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-03-08 14:16:06

我认为,如果将其存储在全局作用域(窗口)或局部作用域(例如,对象、类实例)中的变量中并不重要,甚至可以redux.Only它们之间的差异是您的代码习惯。我建议您将vars放在redux.For中可能会使页面在更好的维护中呈现,您可以创建一个类来存储它,例如:

代码语言:javascript
复制
class RequestQueue {
    _queue = [];
  
    store(req) {
      this._queue.push(req);
    }

    remove(req) {
        const index = this._queue.findIndex(r => r === req);
        if (index > -1) {
            this._queue.splice(index, 1);
        }
    }

    /**
     * other functions:
     * ...
     */
}

const cache = new RequestQueue();
cache.store(...);
cache.remove(...);

// abort
cache._queue.forEach(req => abort(req))

如果这个函数没有问题:abort,你可以得到你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71396150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档