Зачем нужен void в текущем случае?
Есть библиотека хуков
Там есть хук useFetch
Вопрос заключается в том что я посмотрел на его код и не понял зачем там используется ключевое слово void
const fetchData = async () => {
dispatch({ type: 'loading' })
// If a cache exists for this url, return it
if (cache.current[url]) {
dispatch({ type: 'fetched', payload: cache.current[url] })
return
}
try {
const response = await fetch(url, options)
if (!response.ok) {
throw new Error(response.statusText)
}
const data = (await response.json()) as T
cache.current[url] = data
if (cancelRequest.current) return
dispatch({ type: 'fetched', payload: data })
} catch (error) {
if (cancelRequest.current) return
dispatch({ type: 'error', payload: error as Error })
}
}
void fetchData() // -> Как это работает?
Как это работает? Это void TS-а или JS-a?
Изначально я думал что он там написан для того чтобы не писать await. Но потестировав этот код убедился что это не так.
Ответы (1 шт):
Автор решения: Alexey Ten
→ Ссылка
Это обычный оператор void.
В данном случае используется что бы явно показать (коллегам, линтеру, самому себе через две недели) что мы не случайно забыли про результат функции, а сознательно его игнорируем.
На выполнение самой функции fetchData() он никак не влияет.