Встречается на собеседованиях • сегодня
Есть ли способ остановить Promise
Да, стандартный Promise в JavaScript нельзя отменить напрямую, но есть несколько подходов:
- AbortController (современный способ):
javascript
const controller = new AbortController();
const signal = controller.signal;
fetch(url, { signal })
.then(response => response.json())
.catch(err => {
if (err.name === 'AbortError') {
console.log('Fetch aborted');
}
});
// Для отмены:
controller.abort();
text
2. **Флаг отмены** (ручной способ):
```javascript
let isCancelled = false;
new Promise((resolve, reject) => {
// Проверяем флаг
if (isCancelled) reject('Cancelled');
// Логика промиса
}).catch(console.log);
// Для отмены:
isCancelled = true;- Сторонние библиотеки (например, Bluebird) имеют встроенные методы отмены.
Важно: отмена не останавливает выполнение кода внутри промиса, а только предотвращает вызов then/catch после отмены.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы