我如何才能捕获任何错误(网络和graphql),并防止promise.reject()?

时间:2020-06-21 03:51:15

标签: apollo react-apollo apollo-client

image

我已经可以获取Apollo Client错误:

import {onError} from 'apollo-link-error'

function createLink() {
  return ApolloLink.from([
    createErrorLink(),
    createHttpLink(),
  ])
}

function createErrorLink() {
  return onError(function ({graphQLErrors, networkError}) {

    if (graphQLErrors) {
      graphQLErrors.map(({message}) => {
        console.log(`[GraphQL error]`, message)
      })
    }

    if (networkError) {
      console.log(`[Network error]`, networkError)
    }
    
  })
}

是的,错误处理程序有效,但是我如何预防承诺被拒绝?

1 个答案:

答案 0 :(得分:0)

const errorLink = onError(({networkError, graphQLErrors, response}) => {

  // DO ANYTHING

  // Stop error propagation to next Links
  response.errors = null
})

HttpLink看不到错误结束不拒绝promise =)