DEV Community

Discussion on: react-apollo: An approach to handle errors globally

Collapse
johnunclesam profile image
johnunclesam

And what about the 200 HTTP Status code errors like this one: Unhandled (in react-apollo) Error: GraphQL error: Not authorized for Query.myQuery at new ApolloError ?

Collapse
andre profile image
André König Author

You can handle those via the afterware as well. An alternative would be to use the error prop which will be passed to your component. Both will work :)

Collapse
johnunclesam profile image
johnunclesam

But you can't because it's a promise and you don't have yet data.errors.

Thread Thread
andre profile image
André König Author

Hm, can you explain your situation a little bit more? How does the response from your GraphQL look like? Is it stated as an error?

Thread Thread
johnunclesam profile image
johnunclesam

If I first use this code:

...
applyAfterware({ response }, next) {
console.log(response)
...

I have this:

Response {type: "cors", url: "localhost:8080/api", redirected: false, status: 200, ok: true, …}
body: ReadableStream
bodyUsed: true
headers: Headers
ok: true
redirected: false
status: 200
statusText: "OK"
type: "cors"
url: "localhost:8080/api"
proto: Response

I can't read body.

So I found this:

github.com/apollographql/apollo-cl...

and now I'm using:

...
const handleErrors = ({ response }, next) => {
// clone response so we can turn it into json independently
const res = response.clone()
...

And now I can use res.

But what I don't knowis why .clone()? Because response is a response?

After all I need to destroy res? How?