Callback- функции

Создадим несколько функций:

Код
function first() {
  // здесь выполняются какие-то действия, ниже имитируем какую-то задержку в 500мс

  setTimeout(function() {
  console.log(1);
  }, 500)
}

// далее функция без всяких задержек

function second() {
  console.log(2);
}

first();
second();

Первой отработает функция second(), несмотря на то, что она в коде по порядку идёт второй.

Цитата
2
1

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

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

Каллбэк-функция - это функция, которая должна быть выполнена, когда другая функция завершила своё выполнение.

Практический пример, где в параметры функции в качестве аргумента мы передаём другую функцию:

Код
function learnJS(lang, callback) {
  console.log(`Я учу: ${lang}`); // сначала выполниться это
  callback(); // потом запустится эта функция
}

learnJS('JavaScript', function() {
  console.log('Я прошёл этот урок');
});

Цитата
Я учу: JavaScript
Я прошёл этот урок

Это был пример с анонимной функцией, но по аналогии можно выполнить и с именованной:

Код
function learnJS(lang, callback) {
  console.log(`Я учу: ${lang}`); // сначала выполниться это
  callback(); // потом запустится эта функция
}

function done() {
  console.log("Я прошёл этот урок");
}

learnJS("JavaScript", done);


Callback-функции

Всего комментариев: 0

Имя *:
Email *:
Код *:
Хостинг от uCoz