Встречается на собеседованиях • сегодня

Есть ли способ остановить Promise

Да, стандартный Promise в JavaScript нельзя отменить напрямую, но есть несколько подходов:

  1. 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;
  1. Сторонние библиотеки (например, Bluebird) имеют встроенные методы отмены.

Важно: отмена не останавливает выполнение кода внутри промиса, а только предотвращает вызов then/catch после отмены.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы