Что подходит именно вам? (Подсказка: оно начинается с «А» и рифмуется с «Гаксиос»).

Слушать. Я знаю, о чем ты думаешь. Вы думаете: «Axios и fetch() — HTTP-клиенты на основе обещаний. fetch() поставляется с ванильным JavaScript. Аксиос нет. Я просто собираюсь использовать fetch(). А потом я съем Oreo». Ну, держись там сейчас. Прежде чем вы это сделаете, давайте уделим следующие 4 минуты (согласно Medium) и рассмотрим некоторые вопросы, которые вы можете задать себе перед тем, как выбрать HTTP-клиент для своего проекта (но продолжайте есть Oreo).

ВОПРОС 1: Изоморфен ли он?

Это легко. Axios изоморфен, а fetch() — нет.

В программировании изоморфизм — это способность программы работать в разных средах с использованием одной кодовой базы.

Axios может работать в браузере (используя XMLHttpRequests) И может работать на стороне сервера в node.js (используя собственный httpmodule). С другой стороны, чтобы использовать fetch() с node.js, вам нужно будет использовать поли-заполнение, например node fetch.

Изоморфизм делает взаимодействие между интерфейсом и сервером гораздо более рациональным и легким для отладки. Это одна большая галочка в колонке Axios.

ВОПРОС 2: Как насчет совместимости?

Согласно caniuse.com, fetch() недоступен в Internet Explorer или Opera, а также не работает со старыми версиями Chrome, Safari или Firefox. Между тем, поскольку Axios использует XMLHttpRequest, он имеет гораздо более широкую поддержку браузеров. Галочка: Аксиос.

ВОПРОС 3: Любые полезные функции?

Хорошо, вы уже могли догадаться, что я на самом деле предвзято отношусь к Axios, поэтому в оставшейся части этой статьи я откажусь от всякого притворства и просто расскажу вам, почему Axios великолепен.

АКСИОС ПОТРЯСАЮЩИЙ. ВОТ ПОЧЕМУ.

АВТОМАТИЧЕСКОЕ ПРЕОБРАЗОВАНИЕ JSON

Поскольку большинству API требуются данные JSON или кодирование формы для запросов, Axios позаботится об этом за вас. Кроме того, при получении данных из GET-запроса они автоматически подстраиваются под вас. С fetch() вы должны помнить о преобразовании данных.

УПРОЩЕННАЯ ОБРАБОТКА ОШИБОК

С fetch(), если сервер отвечает кодом ошибки, например 404, ошибка не будет выдана автоматически, но ошибка БУДЕТ выдана, если сервер недоступен. По этой причине вам нужно написать дополнительный код, чтобы поймать ошибку.

Axios, с другой стороны, может поймать ошибку с помощью простого .catch().

ТАЙМ-АУТ

Axios также предлагает опцию тайм-аута, чтобы прервать запрос или ответ по истечении заданного периода времени. Это может быть очень полезно, чтобы одна операция не заставляла функциональность всей вашей программы ждать. Как известно, Кенни Роджерс сказал: Вы должны знать, когда держать их, знать, когда их сбрасывать. А затем Вайклеф закричал: Диджеи! диджеи!. (Помните это? На втором альбоме Wyclef? Так странно.)

И ПОБЕДИТЕЛЕМ СТАНОВИТСЯ…

С момента запуска Axios в 2014 году он стал одним из самых популярных HTTP-клиентов на основе обещаний. Это связано не только с его набором функций и тем фактом, что он изоморфен, но и с его простотой, удобочитаемостью и общей простотой использования. Что делает меня счастливым. И я думаю, что мы все хотим быть счастливыми, не так ли?