Встречается на собеседованиях • сегодня
Есть ли у Promise функционал для принудительного завершения через 5 секунд
Да, у Promise нет встроенного метода для принудительного завершения, но можно реализовать таймаут с помощью Promise.race() и отдельного таймера.
Пример:
javascript
const timeoutPromise = new Promise((_, reject) => {
setTimeout(() => reject(new Error('Timeout after 5s')), 5000);
});
const fetchData = fetch('https://api.example.com/data');
Promise.race([fetchData, timeoutPromise])
.then(data => console.log(data))
.catch(err => console.error(err)); // Ошибка, если fetch не завершится за 5с
text
**Нюансы:**
- Таймаут не отменяет исходный запрос — он продолжит выполняться в фоне.
- Для реальной отмены запроса используй `AbortController` (если API поддерживает).
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы