我正在使用isomorphic-fetch
从我的react-redux
应用程序执行 AJAX 请求。在我的 api 中间件中,我有以下调用外部资源的函数:
import fetch from 'isomorphic-fetch';
function callApi({ endpoint, method, body, params = {} }) {
let route = generateRoute(endpoint, params);
return fetch(route, generateFetchOptions(method, body))
.then(response => {
if (!response.ok) {
return Promise.reject(response);
}
return response.json();
});
}
上述函数由以下代码调用:
return callApi(callAPI).then(
response => next(actionWith({
response,
type: successType,
statusCode: 200
})),
error => error.json().then(errorObject => {
return next(actionWith({
type: failureType,
statusCode: errorObject.statusCode,
error: errorObject.message || 'Something bad happened'
}));
})
);
如果我拒绝Promise.reject(response)
错误处理程序正在处理错误,但由于某种原因,错误也会冒泡到浏览器控制台(在我的情况下为 Chrome)。
这是控制台的屏幕截图,显示了正在发生的事情(api.js:34
是callApi
方法的第二行):