Как работает обратный вызов в javascript?
3 года назад
Andrey Moshkov
Ответы
Функция обратного вызова, или колбэк-функция, - это любая функция, которая передаётся в другую функцию в качестве аргумента.
Рассмотрим пример. Создадим функцию, которая принимает на вход обращение и имя и выводит в консоль приветствие:
Теперь объявим вторую функцию, которая принимает на вход функцию (колбэк) и имя. Передав колбэк в другую функцию, мы можем внутри этой функции вызывать колбэк, передавать в него аргументы, возвращать, то есть совершать нужные нам действия:
Вызовем функцию sayGreeting()
, передав в нее колбэк и какое-нибудь имя:
С использованием функций обратного вызова работают многие методы массивов, такие как map()
, filter()
, reduce()
, find()
, every()
и другие.
Продемонстрируем на примере метода map()
, который принимает колбэк, вызывает его на каждом элементе массива и результат вызова записывает в новый массив.
Например, у нас есть массив чисел:
Нам нужно каждое число умножить на 2. Объявим для этого функцию, которая принимает одно число и умножает его на 2:
Передадим функцию в качестве колбэка в метод map()
:
Или более короткий вариант записи:
Часто колбэк определяется не снаружи, а внутри метода/функции:
Кроме того, функции обратного вызова используются внутри асинхронных методов. В этом случае их вызов происходит после завершения какой-то другой операции, например, после окончания времени таймера, после совершения пользователем определенного действия на странице, после получения данных с бэкенда и т.д.:
3 года назад
Кирилл Маркеев