Soy nuevo en reaccionar nativo y noto la similitud con Javascript, bucle de eventos, asíncrono.
La funcionalidad de mi aplicación se divide en 5 páginas. Una es la página de inicio, hacer clic en el botón lleva a la página 1. La página 1 tiene un botón, hacer clic en él lleva al usuario a la página 2, y de manera similar para la página 2 a la página 3 y la página 4 a la página 5.
Cada vez que hago clic en un botón, realizo una solicitud HTTP POST que carga un archivo de texto. Fetch es intrínsecamente asíncrono, por lo que sucede en segundo plano. Esto puede pasar o fallar. Si pasa, quiero registrar el estado como aprobado. Y si falla, quiero registrar el estado como fallido y volver a intentar la carga, todo esto debería suceder sin bloquear al usuario para que no acceda a las páginas siguientes.
Estoy buscando una arquitectura de alto nivel para comprender cómo realizar un seguimiento de las llamadas http asíncronas a través de la reacción nativa y reintentar la solicitud fallida.
Lo primero que hay que decir es que realmente depende de su diseño de back-end si la búsqueda es realmente asíncrona o no.
Eventualmente, lo que es cierto es que tendrá un retraso para cualquier respuesta, que es probablemente la razón por la que dice que es intrínsecamente asíncrono.
Normalmente, puede usar funciones asíncronas y esperar las respuestas en javascript y reaccionar o usar una cadena .then para esperar la resolución de su solicitud. Con eso, su usuario tiene que esperar un segundo, pero puede registrar el resultado en segundo plano o visible para el usuario.
Si desea utilizar la lógica de reintento, le recomiendo que eche un vistazo a los interceptores axios y axios. Con eso, puede verificar ciertos códigos de error en la respuesta de la API y volver a llamar con la misma solicitud o cambiar la solicitud si es necesario.