Код IT
← Каталог

Fetch / axios — типовые запросы — 5. Таймаут

Фрагмент из «Fetch / axios — типовые запросы»: 5. Таймаут.

JavaScript main.js
async function fetchJson(url, { timeoutMs = 5000 } = {}) {
  const controller = new AbortController();
  const timer = setTimeout(() => controller.abort timeoutMs);

  try {
    const res = await fetch(url, { signal: controller.signal });
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    return await res.json();
  } finally {
    clearTimeout(timer);
  }
}

const post = await fetchJson('https://jsonplaceholder.typicode.com/posts/1');
console.log(post.title);
async function fetchJson(url, { timeoutMs = 5000 } = {}) {
  const controller = new AbortController();
  const timer = setTimeout(() => controller.abort timeoutMs);

  try {
    const res = await fetch(url, { signal: controller.signal });
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    return await res.json();
  } finally {
    clearTimeout(timer);
  }
}

const post = await fetchJson('https://jsonplaceholder.typicode.com/posts/1');
console.log(post.title);