Callbacks & Callback Hell

What is the purpose of the callback in this utility function?
function debounce(fn, delay, callback) {
  let timeoutId;
  return function(...args) {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => {
      const result = fn.apply(this, args);
      callback(null, result);
    }, delay);
  };
}
Next Question (9/20)