Axios: Вип AxiosError для javascript

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 14 ΠΌΠ°Ρ€. 2018  Β·  37ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: axios/axios

РСзюмС

Axios отклоняСт ΠΎΡˆΠΈΠ±ΠΊΡƒ с Ρ‚ΠΈΠΏΠΎΠΌ ошибки. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ошибки ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ аксиомы ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ошибок. ЕдинствСнный способ сСйчас β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ поля «запрос», Ρ‡Ρ‚ΠΎ Π½Π΅ всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Наш Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ‚ΠΈΠΏ ошибки Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ это ΠΏΠΎΠ»Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

const { axios, AxiosError } = require('axios');
...
try {
  ...
  const response = await axios.get(url);
  ...
} catch (error) {
  if(error instanceof AxiosError) {
    return processAxiosError(error);
  }
  throw error;
}

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚

  • вСрсия аксиом: 0.18.0

ΠžΡ‚Π½ΠΎΡΠΈΡ‚ΡΡ ΠΊ: #24

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ это исправлСно Π² https://github.com/axios/axios/pull/1419.

ВсС 37 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ достаточно просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΎ это Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ.

AxiosError Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Error. Π­Ρ‚ΠΎ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠΈΠ»ΠΎ Π±Ρ‹ измСнСния.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ провСряСт error.constructor.name === 'Error'

Π― согласСн, Π½ΠΎ это Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. МоТСм Π»ΠΈ ΠΌΡ‹ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ этим Ρ€Π°Π΄ΠΈ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ API?

Π― Π·Π° это, Π½ΠΎ Π»ΠΈΡ‡Π½ΠΎ я Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Π», Ссли ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, согласятся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ axios Π½Π° semver, v1.0.0.

Axios, бСзусловно, каТСтся достаточно ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ для этого, Π° слСдованиС semver-major ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΌΠΊΡƒ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, учитывая ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ использованиС axios ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ HTTP-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ React ΠΈ Vue.js, критичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ послСдствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ.

На самом Π΄Π΅Π»Π΅, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° я ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ», axios Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠΎΠΉ v1.0.0, я ΠΌΠΎΠ³ Π±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ PR для этого сСгодня.

@mzabriskie, @nickuraltsev

@ДТастинБСквит

/cc @Khaledgarbaya @axe312ger @zcei

О, Π΄Π°, это ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹. Вакая ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² нашСм SDK.

МоТСм Π»ΠΈ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ это Π² #1333 @Khaledgarbaya?

PR ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» мягкоС исправлСниС для вСрсий 0.x Π² Π²ΠΈΠ΄Π΅ Ρ„Π»Π°Π³Π° Π² #1419 ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ошибки для 1.x Π² #1420, см. связанныС PR

@axe312ger @Khaledgarbaya Π΅ΡΡ‚ΡŒ новости ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ?

@ axe312ger ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ обновлСния, поТалуйста?

ΠŸΡ€ΠΈΠ΄Π΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ @Khaledgarbaya πŸ˜…

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. БСйчас столкнулся с этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ!

Π•ΡΡ‚ΡŒ Π»ΠΈ прогрСсс Π² этом вопросС? ПолСзно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ошибки axios ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ошибок. И Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π»Π°Π³Π° isAxiosError ΠΊ ошибкам, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ axios https://github.com/axios/axios/pull/1419 , являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. РассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ добавлСния этого Ρ„Π»Π°Π³Π° Π² Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°Ρ‚Ρ‡Π°, поТалуйста?

+1

@Khaledgarbaya ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ обновлСния ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ?

МнС всС Π΅Ρ‰Π΅ нравится это, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ всСх нас Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π²Π½ΠΎΡΠΈΡ‚ΡŒ свой Π²ΠΊΠ»Π°Π΄ Π² качСствС PR

@axe312ger Π£ нас ΡƒΠΆΠ΅ 2 PR Π·Π° 5 мСсяцСв!

1420 ΠΈ β„– 1419

Упс. Π’Ρ€ΡƒΠ΄Π½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° этим Ρ€Π΅ΠΏΠΎ.

Π― Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ https://github.com/axios/axios/pull/1419 оказался Π² master, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ пСрСписываниС v1 Π² настоящСС врСмя Π·Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½ΠΎ ΠΈΠ·-Π·Π° Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° нашСй сторонС.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… людСй Ρ‚Π°ΠΌ?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ это исправлСно Π² https://github.com/axios/axios/pull/1419.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ быстро :)

Π­Ρ‚ΠΎ Π±Ρ‹Π» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ΄ :)

Π‘ΠΈΠ»Π° GitHub ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ :trollface:

@axe312ger @Khaledgarbaya , Π½Π΅ слишком Π»ΠΈ Ρ€Π°Π½ΠΎ ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠ± освобоТдСнии, поТалуйста?

@AyushG3112 К соТалСнию, Ρƒ мСня Π½Π΅Ρ‚ ΠΏΡ€Π°Π² Π½Π° выпуск npm

@nickuraltsev @emilyemorehouse Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΏΠ»Π°Π½Ρ‹ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ это Π² блиТайшСС врСмя?

Π”ΡƒΠΌΠ°ΡŽ, Ссли это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Π΅Π΅ ΠΈ понятнСС, Ρ‡Π΅ΠΌ использованиС.

@axe312ger @Khaledgarbaya @nickuraltsev @emilyemorehouse ΠΊΡ‚ΠΎ -Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· вас ΠΌΠΎΠΆΠ΅Ρ‚ @-ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ npm?

AxiosError Π±Ρ‹Π» Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅... ΠœΠΎΠΆΠ΅Ρ‚ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ isAxiosError, поТалуйста?

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° какая-Ρ‚ΠΎ функция, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Ρ‚ΠΈΠΏΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ function isAxiosError(error: Error): error is AxiosError { return !!error.isAxiosError } , Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Π΅ Π½Π° сторонС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

@Khaledgarbaya @axe312ger ΠŸΡ€ΠΎΡˆΠ»ΠΈ мСсяцы, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π»ΠΈΠ·, поТалуйста?

Π£ нас Π½Π΅Ρ‚ ΠΏΡ€Π°Π² ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ аксиомы Π² npm

НС ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ, ΠΊΡ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚, поТалуйста?

Π’Ρ‹ сдСлали это сами Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° https://github.com/axios/axios/issues/1415#issuecomment -449578470 - Ник ΠΈ Π­ΠΌΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²Π° Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

πŸ‘‹ Π― ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» всС выпуски для согласованности. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CI снова станСт Π·Π΅Π»Π΅Π½Ρ‹ΠΌ, я Π²Ρ‹ΠΏΡƒΡ‰Ρƒ!

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ