Вот что я собираюсь:Fetch: отклонить обещание и уловить ошибку, если статус не в порядке?
import 'whatwg-fetch';
function fetchVehicle(id) {
return dispatch => {
return dispatch({
type: 'FETCH_VEHICLE',
payload: fetch(`http://swapi.co/api/vehicles/${id}/`)
.then(status)
.then(res => res.json())
.catch(error => {
throw(error);
})
});
};
}
function status(res) {
if (!res.ok) {
return Promise.reject()
}
return res;
}
EDIT: Обещание не получают отказ, это то, что я пытаюсь выяснить.
Я использую этот fetch polyfill в Редксе с redux-promise-middleware.
Вы бросаете исключение в 'catch', но не' catch' Это. – zerkms
Он * делает * попадает в 'catch' (который улавливает все отклонения во всей цепочке, к которой он привязан), но обратный вызов' catch' ничего не обрабатывает - он только заново вызывает ошибку. Замените 'throw' на' console.error' или так. – Bergi
Браузер замораживает? Это определенно не должно произойти. – Bergi