Хочу обработать неудачные http-запросы. Делаю их при помощи fetch.
Чтобы понять, что запрос неудачен и чтобы отправить его снова я вставляю конструкцию try-catch
try {
t = await fetch(...).then(...)
} catch (err) {
}
Я хочу указать время timeout'а, спустя которое, если promise fetch'a остался в состоянии pending (ответ от сервера не вернулся), то запрос считать неуспешным и отправить его еще раз.
Все ли это можно реализовать на фронтэнде, или часть нужно дописывать на бэке?
Как вообще все это реализовать по-человечески?