AbortController
by Artem Borovikov
JavaScript
const fetchWithTimeout = async (url, timeout) => {
const controller = new AbortController()
const { signal } = controller
const timeoutId = setTimeout(() => controller.abort(), timeout)
try {
const response = await fetch(url, {
signal,
})
clearTimeout(timeoutId);
const data = await response.json();
console.log('fetchWithTimeout', data);
return data;
} catch (error) {
throw error
}
}
const data = fetchWithTimeout(
"https://jsonplaceholder.typicode.com/todos/1",
1000,
).then((data) => data);
console.log('final data', data);