Error Handling in Async Code

What error recovery strategy is shown here?
async function fetchWithRetry(url, retries = 3) {
  try {
    return await fetch(url);
  } catch (error) {
    if (retries === 0) throw error;
    await new Promise(r => setTimeout(r, 1000));
    return fetchWithRetry(url, retries - 1);
  }
}
Next Question (2/20)