Есть ли элегантный способ отловить сетевые ошибки в Apollo? - PullRequest
0 голосов
/ 10 марта 2020

В этом примере , внутри обработчика отправки формы, запрос apollo обернут в блок try / catch:

 async function handleSubmit(event) {
    event.preventDefault()

    const emailElement = event.currentTarget.elements.email
    const passwordElement = event.currentTarget.elements.password

    try {
      await client.resetStore()
      const { data } = await signIn({
        variables: {
          email: emailElement.value,
          password: passwordElement.value,
        },
      })
      if (data.signIn.user) {
        await router.push('/')
      }
    } catch (error) {
      setErrorMsg(getErrorMessage(error))
    }
  }

Есть ли более элегантный способ отловить сетевые ошибки, не используя try / поймать?

Или я должен просто проигнорировать ошибку консоли:

Uncaught (в обещании) Ошибка: Ошибка сети: Ответ не выполнен: Получен код состояния 400

А использовать ошибку проп?

 const [login, { error }] = useMutation(LoginMutation)
...