Promises & then/catch

What Promise pattern is implemented here?
function retry(operation, retries) {
  return operation().catch(error =>
    retries > 0
      ? retry(operation, retries - 1)
      : Promise.reject(error)
  );
}
Next Question (17/21)