Spotkałem się z sytuacjami, w których być może z powodu złego połączenia, w którym nie ma odpowiedzi z interfejsu API, w którym pomija zarówno .then, jak i .catch. Jaka jest najlepsza praktyka w zakresie obsługi błędów w takim przypadku? Chciałbym ustawić ostrzeżenie, jeśli nie ma żadnej odpowiedzi.

const getPic () => {
axios({
        url:   '/users/avatar',
        method: 'GET',
        headers: {
          'Authorization': "Bearer " + token,
        },
        data: {avatar: avatarUrl},
        responseType: 'blob',
      }).then((response) => {
        log(response);
        let blob = URL.createObjectURL(response.data)
        localStorage.setItem('image', blob);

}.catch(error) {
console.log(error)
}
}
0
scotth527 20 listopad 2019, 05:50

1 odpowiedź

Powinieneś ustawić timeout, co spowoduje odrzucenie obietnicy w przypadku braku odpowiedzi.

    axios({
      url:   '/users/avatar',
      method: 'GET',
      headers: {
        'Authorization': "Bearer " + token,
      },
      timeout: 1000,
      data: {avatar: avatarUrl},
      responseType: 'blob',
    })
    ~``
0
coagmano 20 listopad 2019, 05:56