NetworkManager
NetworkManager orquesta los fetches asíncronos. Al llevar el registro de todas las peticiones en curso, puede deduplicar peticiones idénticas cuando se realizan con la bandera throttle.
NetworkManager implements Manager
Ciclo de vida
Éxito
Error
Miembros
constructor({ dataExpiryLength = 60000, errorExpiryLength = 1000 })
Los argumentos representan el tiempo predeterminado (en milisegundos) antes de que un recurso se considere 'obsoleto'.
middleware
Acciones consumidas
Iniciará la petición de red y luego hará dispatch al completarse.
Acciones procesadas
Acciones despachadas
allSettled(): Promise
Se resuelve cuando todos los fetches en curso han terminado. Conceptualmente equivale a Promise.allSettled
skipLogging(action)
Lo usa DevtoolsManager para determinar si se debe registrar una acción
Valor predeterminado:
skipLogging(action: ActionTypes) {
return action.type === FETCH && action.meta.key in this.fetched;
}
Miembros protegidos
handleFetch(fetchAction)
Se llama cuando el middleware intercepta la acción 'rdc/fetch'.
Luego inicia una promesa para una clave y, potencialmente, inicia el fetch de red.
Usa throttle solo cuando la meta de la acción lo indica. Esto es valioso para garantizar que las peticiones de mutación siempre se realicen.
handleSet(setAction)
Se llama cuando el middleware intercepta una acción set.
Luego resuelve la promesa asociada a la clave del set.
throttle(key, fetch)
Garantiza que solo haya una petición en curso para una clave dada en cualquier momento.
Usa la clave para recuperar la promesa en curso o, si no existe, crear una nueva promesa y llamar a fetch.
getLastReset(): number
Marca de tiempo de la última vez que se reinició todo el store
clear(key)
Limpia el estado de la promesa para una clave dada
clearAll()
Garantiza que todas las promesas se completen rechazando las restantes