Роль колбэков
- Отложенная реакция — не блокировать поток, пока ждём событие/таймер/сеть.
- Инверсия управления — библиотека вызывает ваш код в нужный момент (
addEventListener, fs.readFile в Node).
- Кастомизация поведения — HOF вроде
map, sort((a, b) => ...).
- Continuation — «что сделать с результатом потом».
function loadScript(src, callback) {
const script = document.createElement("script");
script.src = src;
script.onload = () => callback(null, script);
script.onerror = () => callback(new Error("fail"));
document.head.append(script);
}
Без колбэков (или Promise/async как их формы) сложно выразить асинхронность в однопоточном JS.
На собеседовании: связать с event-driven моделью браузера и упомянуть минусы (hell) → Promise.