Чтобы сделать тайм-аут "бесконечным", я использую это:
fetch (serverUrl)
.then
( resp => resp.json()
)
.then
( json => $cback (json)
)
.catch
( e => $cback (e)
);
'$ cback' - это видимая функция обратного вызова в области видимости, которая определяет, является ли ее 1-й аргумент экземпляром Error.Если это так, он сделает новый вызов fetch ().Если он НЕ обнаруживает, что это ошибка, он использует ответ для того, для чего он был предназначен, а затем делает новый вызов для извлечения.
Кажется, это прекрасно работает в FireFox.Выборка не делает тайм-аут, что я и хочу.К сожалению, в Chrome fetch () ВСЕГДА истекает примерно через 2 минуты, что приводит к срабатыванию оператора catch, другими словами, время ожидания считается ошибкой.Но я улавливаю это.
Реальная проблема для меня в Chrome заключается в том, что даже если я улавливаю ошибку, она все равно выдает запись об ошибке в журнале о запросе без ответа.Поэтому, если пользователи оставят свой браузер открытым перед обедом, они увидят много сообщений об ошибках в своем журнале браузера (если им захочется посмотреть), и я боюсь, что количество ошибок приведет к тому, что они «сойдут с ума».