Comments (5)
@valerybugakov take a look at apollo-error-link
Compose this with your httpLink like this:
import { ApolloClient } from 'apollo-client';
import { ApolloLink } from 'apollo-link';
import { createHttpLink } from 'apollo-link-http';
import { onError } from 'apollo-link-error';
import { InMemoryCache } from 'apollo-cache-inmemory';
const errorLink = onError(({ networkError, graphQLErrors }) => {
if (graphQLErrors) {
graphQLErrors.map(({ message, locations, path }) =>
console.log(
`[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`,
),
);
}
if (networkError) console.log(`[Network error]: ${networkError}`);
});
const httpLink = createHttpLink({ ... });
const link = ApolloLink.from([
...otherLinksIfNeeded,
errorLink,
httpLink,
]);
const client = new ApolloClient({
link,
cache: new InMemoryCache(),
queryDeduplication: true,
});
from apollo-link.
@jbaxleyiii
What about if I want to catch a network Error?
Lets say a 400, bad request.
from apollo-link.
@somehandle yep, it's an option. What if I want to handle errors in my custom link? I found the only way to do it is to wrap Observable returned by next(operation)
into another Observable.
from apollo-link.
@valerybugakov what kind of errors do you want to handle? If they are Graphql Errors, you can use .map
on the result of forward(operation)
since they are returned as a result, if not, you need to subscribe around the other observer. Take a look at the code behind apollo-link-error for some examples!
from apollo-link.
from apollo-link.
Related Issues (20)
- onError giving me terminating link and hence, `from` throws LinkError
- Type error after upgrading to graphql@15 HOT 7
- '__spreadArrays' was not found
- Axios instance as fetch implementation HOT 1
- How to use apollo-link-batch-http with Angular?
- Multiline package description on npm
- TypeScript error in Header authentication tutorial HOT 1
- apollo-link-ws loads backend modules when using it in the browser HOT 1
- Cannot override `useGETForQueries` to use POST on one specific query
- Request has invalid content type header when using XMLHttpRequest polyfill HOT 1
- How to use 2 terminating Links?
- OnError Apollo i will like to show/display the error HOT 3
- Client - Only absolute URLs are supported
- graphQLErrors returns an empty array for mutations onError
- Integrating websocket link results in constat logging in console HOT 2
- Apollo v3 Beta not working with RetryLink and onError HOT 2
- Pagination Apollo v3
- Update Dependencies (Renovate Bot)
- setContext in the errorLink is not updating the global header token
- operation context gets lost?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apollo-link.