Я работаю над приложением 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
После сравнения плюсов и минусов для этих двух дизайнов, я до сих пор не могу понять, какой из них лучше.
Существует ли какой-либо общий дизайн для такого рода обработки ошибок?Заранее спасибо.