Un usuario puede cambiar rutas o filtros mientras una solicitud anterior aún está en curso. Si la respuesta anterior llega en último lugar, es posible que sobrescriba los datos de la vista actual.
Vincular la solicitud a la vista
const controller = new AbortController();
fetch(url, { signal: controller.signal });
// When this view is replaced:
controller.abort();- Cree un controlador para la solicitud o vista propietaria del resultado.
- Cancele cuando se elimine la vista o cambie el término de búsqueda relevante.
- Trate un aborto como una cancelación esperada, no como un error del servidor para volver a intentarlo.
Proteja también las actualizaciones de estado
Es posible que la cancelación no detenga todas las operaciones después de que haya llegado una respuesta. Compruebe que el resultado todavía pertenezca a la solicitud activa antes de enviarla al estado compartido.
Pruebe una primera solicitud lenta seguida de una segunda solicitud más rápida. La pantalla final debe reflejar la vista actual y la cancelación no debe mostrar un mensaje de error engañoso.
