Keeps calling a 'probe' function until it returns success.
If you just want to call a function until it returns a value, use retryFunction instead.
consttask = { probe:(attempts) => { // attempts is number of times it has been retried if (Math.random() > 0.5) { // Return a succesful result return { success:true } } else { return { success:false } } }
// Run with retry constt = awaitretryTask(task, opts);
// Handle result if (t.success) { // Use the value: console.log(t.value); } else { // Handle failure case console.log(t.message); }
What you get back is a RetryResult object, which includes:
success: true if task succeeded, false if it failed or was aborted
attempts: number of times task was attempted
elapsed: milliseconds elapsed since initial call to retryTaskvalue: value returned by task, fallback value if it failed, or undefined.
message: message describing outcome. If retry was aborted, message will be abort reason.
Keeps calling a 'probe' function until it returns success. If you just want to call a function until it returns a value, use retryFunction instead.
What you get back is a RetryResult object, which includes:
success: true if task succeeded, false if it failed or was abortedattempts: number of times task was attemptedelapsed: milliseconds elapsed since initial call toretryTaskvalue: value returned by task, fallback value if it failed, or undefined.message: message describing outcome. If retry was aborted, message will be abort reason.