Async/Await Syntax
What advanced pattern does this code implement?
async function retry(fn, retries = 3, delay = 1000) {
try {
return await fn();
} catch (error) {
if (retries === 0) throw error;
await new Promise(r => setTimeout(r, delay));
return retry(fn, retries - 1, delay * 2);
}
}