当连接脱机时,我想取消挂起的请求。为此,我将所有请求存储在window.myRequests数组中。当连接转离线后,我迭代window.myRequests数组并调用item.abort() --我使用的是作为客户端的超级代理--它工作得很好。但我不认为将请求存储在window对象中是正确的。
在哪里存储这个数组在一个反应应用程序?是正确的地址吗?
我想让它从组件树中的任何地方访问。因为我在一个地方处理在线/离线状态。
提前谢谢。
发布于 2022-03-08 14:16:06
我认为,如果将其存储在全局作用域(窗口)或局部作用域(例如,对象、类实例)中的变量中并不重要,甚至可以redux.Only它们之间的差异是您的代码习惯。我建议您将vars放在redux.For中可能会使页面在更好的维护中呈现,您可以创建一个类来存储它,例如:
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,你可以得到你想要的。
https://stackoverflow.com/questions/71396150
复制相似问题