Write a function retry(fn). It calls the async function fn with no arguments. If the promise from fn rejects, call fn again. Make no more than three attempts in total.
retry returns a promise with the result of the first successful attempt. If all three attempts fail, return a promise that rejects with the error of the last attempt.
await retry(() => Promise.resolve('ok'))Returns 'ok'
await retry(() => Promise.reject(new Error('down'))).catch((e) => e.message)Returns 'down'
Hidden tests run on Submit.