Функция обратного вызова

Согласно Википедии, в« компьютерном программировании обратный вызов, также известный как функция call-after , - это любой исполняемый код , который передается в качестве аргумента другому коду; ожидается, что другой код обратится (выполнит) аргумент в заданное время ».

Мы используем функции обратного вызова для создания приложений, которые работают синхронно. Например, функции обратного вызова полезны, когда нам нужно запросить данные из внешнего API, и нам нужно дождаться ответа, но мы не всегда хотим, чтобы все наше приложение останавливалось во время выборки наших данных.

Есть несколько преимуществ использования функций обратного вызова:

  • Функция обратного вызова упрощает разделение нашего кода на более повторно используемые и взаимосвязанные части.
  • Функция обратного вызова позволяет нам создать абстракцию, но что такое абстракция? абстракция скрывает детали некоторой реализации кода, потому что мы не заботимся обо всех этих деталях. Фактически, абстракция помогает нам говорить о проблемах на более высоком (или более абстрактном) уровне.

Функция высшего порядка

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

Чтобы подробнее разобраться в этих двух концепциях, давайте рассмотрим пример:

Функция «MathOperations» не заботится о том, как она должна выполнять математические операции и уровень детализации. Мы могли бы использовать другие функции, такие как factorial или power, внутри функции MathOperations, но вместо этого мы вырезали их в другие функции, чтобы создать новый уровень абстракции. Таким образом, функция MathOperation занимается только передачей и печатью самого ввода, но независимо от того, как на самом деле работают эти операции. Это в основном делегирование операций функциям более низкого уровня, таким как мощность и факториал.