He intentado diferentes formas de encontrar la respuesta. Si uso la biblioteca cancelToken en axios (paquete npm). Una vez que se cancela la solicitud, no podemos volver a intentar la solicitud. La solicitud no pasará a la siguiente línea (incluso después del tiempo de espera) hasta que reciba una respuesta de la solicitud axios.
Necesito una respuesta para cancelar una solicitud después del tiempo de espera y también debo volver a intentar la solicitud en caso de tiempo de espera.
Axios tiene una opción de "tiempo de espera", después de ese umbral cancelará la solicitud. Así que puedes escribir algo como esto:
const TIMEOUT = 3000; // millisecods let succeededResponse = null; while(!succeededResponse) { try { succeededResponse = await axios.get("https://somewhere.any", { timeout: TIMEOUT }); } catch(e) { // as axios will throw an error in case of timeout, you'll need this try-catch block } } // axios will request until it gets the response in the specified threshold // here succeededResponse will have a value