Найти тему

Частичное применение функций в JavaScript

Статья подготовлена для студентов курса «FULLSTACK РАЗРАБОТЧИК JAVASCRIPT» в образовательном проекте OTUS.

Частичное применение функций — один из лучших механизмов, когда-либо созданных для совместного использования кода. Он позволяет внедрять зависимости в код, не прибегая ко всем типичным ООП-шаблонам.

В нашем примере мы будем оборачивать библиотеку Axios. Это печально известная библиотека, а известна она тем, что выдаёт исключения вместо того, чтобы возвращать ошибочный ответ. С подобными библиотеками работать довольно сложно, особенно применяя async/await.

Чтобы сделать безопасной небезопасную функцию, нам пригодится карринг и частичное использование функций:

-2

Посмотрите, что функцию safeApiCall мы записываем как func = (params) => (data) => {...}. Это техника распространена в функциональном программировании и именно её называют карринг. И именно она идёт рука об руку вместе с частичным применением функций. Что это значит? То, что функция func при вызове с params возвратит другую функцию, которая по факту и выполняет работу. Иначе говоря, функция частично используется с params.

Мы можем записать это следующим образом:

-3

Посмотрите, что зависимости (params) передаются в качестве первого параметра, а фактические данные передаются в качестве второго параметра.

Если требуется упрощение задачи, допускается применение npm-пакета saferr, который тоже способен работает с промисами и async/await:

-4

Источник

Хотите стать JavaScript FullStack разработчиком и улучшить свои технические скиллы?
10 июня пройдёт день открытых дверей курса
«Fullstack разработчик JavaScript», на котором будут разыграны 10 СЕРТИФИКАТОВ на обучение в OTUS.