как лучше подправить ?
Нужно написать функцию fetchWithTimeout которая принимает 2 аргумента:
- url - строка
- timeout - число
Функция должна вернуть промис который резолвится результатом GET запроса на url переданный в первом аргументе. Если выполнение запроса заняло больше чем количество миллесекунд из второго аргумента, промис должен зареджектиться с ошибкой 'Timeout', при этом запрос должен перестать выполняться. Если запрос выполнился быстрее чем timeout, но с ошибкой - промис должен зареджектиться с этой ошибкой.
Я так понимаю сейчас const response = await fetch(url, { signal });
вообще ведь не отработает ?
useeffect нельзя внутрь функции пихать, только top level компонента
это пример для компиляции не для применения просто чтобы было более понятно
эта функция может быть хуком) Названым не по правилам, но хуком
очень извращенным хуком конечно, но в целом да, может
не очень понято зачем try catch - fetch не выкидывает исключения (или есть кейсы?)
new Promise не нужен, просто try { return } catch { throw } async function request(params) { try { // fetch... if (!response.ok) { throw new Error(response.statusText); } return response.json(); } catch (error) { // handle error... throw error; } finally { clearTimeout(timeout); } }
Обсуждают сегодня