I have a working API to get items from the server as below. I am using React to use this data. Now, I want to catch all server errors that begins with 5__ and display a message like "No connection with internet" or something like that.
export const GetItems = (operand, searchValue) => {
const trimmedValue = searchValue.trim();
let binedResults;
// make 2 API calls to search on both item_name and code;
// then bine them;
// there is no API method to do this, that I could find
return getItemsByName(operand, trimmedValue)
.then(result => (
(binedResults = [].concat(result))
))
.then(() => getItemsByCode(operand, trimmedValue))
.then(result => (
(binedResults = binedResults.concat(result))
));
};
Currently, I need to look at the console to check if there is a problem with connection.
Updated as @Dane requested
const getItemsByCode = (operand, searchValue) => (
FetchToJson(BuildCodeSearchUrl(operand, searchValue))
);
It's just calling a method to build the URL. You can consider that everything is working good, getting the response if there is a connection.
I have a working API to get items from the server as below. I am using React to use this data. Now, I want to catch all server errors that begins with 5__ and display a message like "No connection with internet" or something like that.
export const GetItems = (operand, searchValue) => {
const trimmedValue = searchValue.trim();
let binedResults;
// make 2 API calls to search on both item_name and code;
// then bine them;
// there is no API method to do this, that I could find
return getItemsByName(operand, trimmedValue)
.then(result => (
(binedResults = [].concat(result))
))
.then(() => getItemsByCode(operand, trimmedValue))
.then(result => (
(binedResults = binedResults.concat(result))
));
};
Currently, I need to look at the console to check if there is a problem with connection.
Updated as @Dane requested
const getItemsByCode = (operand, searchValue) => (
FetchToJson(BuildCodeSearchUrl(operand, searchValue))
);
It's just calling a method to build the URL. You can consider that everything is working good, getting the response if there is a connection.
getItemsByCode
as well ?
– Dane
Commented
Nov 27, 2017 at 6:45
Use catch()
:
return getItemsByName(operand, trimmedValue)
.then(result => (
(binedResults = [].concat(result))
))
.then(() => getItemsByCode(operand, trimmedValue))
.then(result => (
(binedResults = binedResults.concat(result))
))
.catch((error) => {
if (error.response) { // if there is response, it means its not a 50x, but 4xx
} else { // gets activated on 50x errors, since no response from server
// do whatever you want here :)
}
});