Помогите разобраться с callback функциями
Только вникаю в js и дошел до callback функций. Везде приводится такой пример.
function first(callback) {
setTimeout(function() { console.log("1"); }, 1000);
callback();
}
function second() {
console.log('2');
}
first(function () {
second()
});
Но я не понимаю зачем передавать функцию second в качестве аргумента callback функции first если функцию second я могу и так вызвать без использования параметра.
function first() {
setTimeout(function() { console.log("1"); }, 1000);
second();
}
function second() {
console.log('2');
}
first();
Ответы (1 шт):
Коллбеки это вариант привязаться к определенной точке выполнения. Предположим Вы хотите что бы childFunc() начала выполняться только после того как функция parentFunc() будет завершена:
function parentFunc(callback) {
// ... какой-либо синхронный код
callback()
}
function childFunc() {
console.log("Следующая фунция")
}
parentFunc(childFunc)
Или для асинхронного кода это возможность начать выполнения следующей функции только после того как асинхронная операция будет завершена:
function parentFunc() {
setTimeout(childFunc, 1000)
}
function childFunc() {
console.log("Следующая фунция")
}
В JavaScript на системе коллбеков основано многое, например промисы это не что иное как те же самые коллбеки, только в более удобном виде.