Выбор ответа Junior Web API и воркеры спрашивают часто обновлено

fetch и ответ 404

Вопрос

Сервер вернул 404. Что выведет код?

try {
  const res = await fetch('/missing');
  console.log('ok', res.status);
} catch (e) {
  console.log('catch');
}

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: ok 404. Промис fetch отклоняется только при сетевой ошибке или отмене.

Варианты ответа

  1. catch
  2. ok 404правильный ответ
  3. Ничего: промис так и останется в ожидании
  4. ok undefined

Разбор

Промис fetch отклоняется только при сетевой ошибке или отмене. HTTP-ответ с любым статусом, включая 404 и 500, считается успешным, просто res.ok равно false. Поэтому выводится ok 404. Статус всегда число. Промис не зависает: ответ получен.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме