async function loadReport(range, signal) { try { try { const primary = await fetch(PRIMARY_ENDPOINT, { signal }); return await primary.json(); } catch (primaryError) { console.warn('Primary endpoint failed:', primaryError.message); const fallbackData = await fetch(BACKUP_ENDPOINT, { signal, retries: 2 }); return await fallbackData.json(); } catch (fallbackError) { console.error('Both APIs failed:', fallbackError.message); // Return cached data or default values return getDefaultData(); } } }
Would you like me to walk through any of these in more detail, or work through a specific failure scenario?