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

Можно ли не реджектить new Promise

Да, можно не вызывать reject в new Promise, но это считается плохой практикой. Промис должен всегда разрешаться (resolve) или отклоняться (reject), иначе он останется в состоянии "pending" (ожидание), что может привести к утечкам памяти и необработанным ошибкам.

Пример:

javascript
const promise = new Promise((resolve) => {
  // Только resolve, без reject
  setTimeout(() => resolve('Done'), 1000);
});

promise.then(console.log); // Выведет "Done" через 1 секунду

Но если внутри промиса произойдет ошибка, и нет reject, она не будет обработана корректно:

javascript
const badPromise = new Promise((resolve) => {
  throw new Error('Oops!');
  // Без reject ошибка "потеряется"
});

badPromise.catch(console.error); // Не сработает, ошибка не поймана

Всегда лучше явно обрабатывать и resolve, и reject.

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

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

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

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