вызов. Типа если в одной функции есть задержка или что-то такое, и нам нужно вызвать функции последовательно, то поможет коллбэк. Но почему у меня такой код выдаёт 2 1? Ожидал, что сначала пройдёт таймаут, потом вызовется коллбек и будет 1 2. Что я делаю не так?
function one(param, callback) {
setTimeout( function () {
console.log(param);
}, 500);
callback();
}
function two(){
console.log(2);
}
one(1, two);
https://learn.javascript.ru/events-and-timing-depth Когда ты вызываешь setTimeout, твоя функция встает в конец очереди и выполняется после времени
Ты похоже не понял сути колбека, js код выполняется не по порядку записи, и вообще колбеки это прошлый век, почитай https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/Promise И это https://learn.javascript.ru/async-await
Кажется понял. Т.е если там будет вместо таймаута просто какой-то тяжелый запрос, то он выполнится первым?
Если это будет промис, и асинк авейт то да
https://developer.mozilla.org/ru/docs/Web/JavaScript/EventLoop
Прочитай про нулевые задержки
Почитай про асинхронность
Обсуждают сегодня