Реагируйте с Graphql, что является общим дизайном для обработки ошибок - PullRequest
0 голосов
/ 13 февраля 2019

Я работаю над приложением React с graphql.

Сейчас все ошибки API обрабатываются при каждом вызове grapqhl.И недавно я узнал, что пакет apollo-link-error может помочь в обработке ошибок внутри функции onError, поэтому все ошибки API можно обрабатывать «централизованно».После сравнения плюсов и минусов для этих двух дизайнов я все еще не могу понять, какой из них лучше.текущий дизайн:

Client.mutate({
  mutation: editMutationQuery,
  variables: variables,
  fetchPolicy: 'no-cache'
})
  .then( res => {
    //if success
  })
  .catch(e => {
    //if fail open modal to show error
    this.props.openErrorModal(GQLHelper.formatError(e))
  })

onError управляет ошибками:

const linkError = onError(({operation,grahqlError,networkError,forward}) => {
  if (networkError or graphqlError) {
      Modal.error({
          title:'Error',
          showHeaderCloseButton:false,
          footer:footer
      })
  }
});//all errors are handled here 

После сравнения плюсов и минусов для этих двух дизайнов, я до сих пор не могу понять, какой из них лучше.

Существует ли какой-либо общий дизайн для такого рода обработки ошибок?Заранее спасибо.

...