Независимо от того, что Response
возвращается из handlerCallback затем отправляется как есть в основной поток.
Ответ на любой ответ, обработанный вашим существующим кодом как ошибка, должен работать.
Вот что генерирует Response.error()
:
Response {
body: null
bodyUsed: false
headers: Headers {}
ok: false
redirected: false
status: 0
statusText: ""
type: "error"
url: ""
}
И вот что генерирует new Response(null, {status: 500})
:
Response {
body: null
bodyUsed: false
headers: Headers {}
ok: false
redirected: false
status: 500
statusText: ""
type: "default"
url: ""
}
Единственные различия - status
(0 -> 500
) и type
('error' -> 'default'
). Те же минимальные различия применимы к new Response(null, {status: 404})
. Также обратите внимание, что если вы используете Fetch API, ответ со статусом ошибки не разрешается в отклоненном обещании, что требует дополнительной проверки свойства Response
ok
.
Я проверил через Могу ли я использовать доступность различных API ответов для различных платформ, но я обнаружил, что они неточны. Вы можете выполнить онлайн-тест здесь и здесь. error()
, ok
и status
Response
доступны во всех последних браузерах для настольных и мобильных устройств.
Другой вариант - использовать полифил, как этот, который перезаписывает глобальный объект Response
на объект, содержащий error()
реализацию , но я не уверен в этой альтернативе.
person
mishamosher
schedule
05.07.2020