Callbacks & Callback Hell

What advanced callback pattern is shown here?
function retry(operation, retries, delay, callback) {
  operation((err, result) => {
    if (!err || retries === 0) {
      return callback(err, result);
    }
    setTimeout(() => {
      retry(operation, retries - 1, delay, callback);
    }, delay);
  });
}
Next Question (6/20)