1
我使用isomorphic-fetch
执行从我react-redux
应用AJAX请求安慰。在我的API中间件,我有以下函数调用外部资源:错误泡沫即使被处理
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)
拒绝误差为:
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();
});
}
上述功能是通过下面这段代码中调用由错误处理程序处理,但由于某种原因,错误也会冒泡到浏览器控制台(在我的情况下为Chrome)。
下面是从控制台一个屏幕快照,显示了所发生的事情(api.js:34
是callApi
方法的第二行):(?大概在每一个浏览器)
哪些错误。特别是?你拒绝的'响应'甚至不是'错误'。 – Bergi
我作为Promise.reject返回的任何错误。我做处理他们,但他们以某种方式设法进入控制台 –
请发表您的控制台的屏幕截图。响应对象不是错误,不应该在控制台上显示。但是,代码中还有许多其他事情可能会出错,并导致出现错误。 – Bergi