Практический смысл
Callback — функция, которую передают другому коду, чтобы он вызвал её по своему контракту (сразу или позже).
Подробности
Некоторые колбэки синхронны (Array.prototype.map), другие отложены (таймеры, события, I/O). Сама передача колбэка не делает операцию асинхронной.
function fetchData(callback) {
setTimeout(() => {
const data = { name: 'John Doe' };
callback(null, data);
}, 0);
}
function handleData(error, data) {
if (error) throw error;
console.log(data);
}
fetchData(handleData);
Классический Node-стиль — (err, result).
Итог
Callback — «вызови меня позже/по правилам API». Асинхронность задаёт API, а не факт передачи функции.