Run fn synchronously until it returns or the policy gives up.
fn
RangeError when policy.attempts is not an integer of at least 1 (before fn runs).
policy.attempts
The last error.
Run
fnsynchronously until it returns or the policy gives up.