Quiero cancelar las solicitudes pendientes cuando la conexión se desconecte. Para hacer eso, almaceno todas mis solicitudes en mi matriz window.myRequests . Después de que la conexión se desconecta, itero la matriz window.myRequests y llamo a item.abort() [estoy usando superagent como cliente] Funciona muy bien. Pero no creo que almacenar solicitudes en el objeto de ventana sea correcto.
¿Dónde almacenar esta matriz en una aplicación React? ¿Es el redux la dirección correcta?
Quiero que sea accesible desde cualquier parte del árbol de componentes. Porque estoy manejando el estado en línea/fuera de línea en un solo lugar.
Gracias por adelantado.
Creo que no importa si lo almacena en una variable en el alcance global (ventana) o en el alcance local (por ejemplo, objeto, instancia de clase), incluso redux. Solo la diferencia entre ellos es su hábito de código. Le sugiero que ponga los vars pueden hacer que la página se muestre en redux. Para un mejor mantenimiento, puede crear una clase para almacenarla, por ejemplo:
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))Si no hay problema con la función: abortar , podría obtener lo que desea.