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





