/
Orpheus
/
laba5
Обзор
Документация
Войти
/
Orpheus
/
laba5
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
script.js
49 строк
2 KB
Orpheus
лаба5
09 июн 2025, 13:46
09 июн 2025, 13:46
8993117
Код
Авторство
О чём код?
function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } // Проверка: delay(1000).then(() => console.log("Прошла 1 секунда")); async function fetchUserAndPosts(userId) { try { // Получаем пользователя const userResponse = await fetch(`https://jsonplaceholder.typicode.com/users/${userId}`); if (!userResponse.ok) throw new Error("Ошибка при запросе пользователя"); const user = await userResponse.json(); // Получаем посты пользователя const postsResponse = await fetch(`https://jsonplaceholder.typicode.com/posts?userId=${userId}`); if (!postsResponse.ok) throw new Error("Ошибка при запросе постов"); const posts = await postsResponse.json(); console.log("Пользователь:", user); console.log("Посты:", posts); } catch (error) { console.error("Произошла ошибка:", error); } } // Вызываем функцию fetchUserAndPosts(1); async function fetchWithTimeout(url, timeout) { const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), timeout); try { const response = await fetch(url, { signal: controller.signal }); clearTimeout(timeoutId); if (!response.ok) throw new Error(`Ошибка HTTP: ${response.status}`); return await response.json(); } catch (error) { if (error.name === 'AbortError') { throw new Error(`Запрос не выполнен за ${timeout}ms`); } throw error; } } // Проверка: fetchWithTimeout('https://jsonplaceholder.typicode.com/users/1', 5000) .then(data => console.log(data)) .catch(err => console.error(err.message));