您好,我使用 fetch 是这样的:
export function fetchSomething() {
return ({fetch}) => ({
type: FETCH_SOMETHING,
payload: {
promise: fetch('/someUrl', {
credentials: 'same-origin',
}).then(response => response.json())
.then(function(response) {
if (response.status >= 400)
{
let error = new Error(response.statusText);
throw error;
}
return response;
})
}
});
}
如果该 fetch 返回无效的 json,则整个 Promise 将被拒绝并调度 _ERROR 动作 - 不会抛出异常。它不会发出异常,而是发出 PromiseRejectionEvent。
但是,如果响应代码 >= 400,则抛出异常,并且调度 _ERROR 操作。
在检查状态代码时如何发出该事件并拒绝承诺而不引发异常?
谢谢