Capstone: start three delayed “scout file” loads together with Promise.all, written with async / await and try / catch / finally. Toggle a bad file to see one rejection fail the group. Still offline — no fetch yet.

delay helpers → Promise.all → async/await → UI

Idle

Summary appears here.

Load the pack to practice parallel promises.

Important JavaScript

async function loadScoutPack(includeBad) {
  setLoading(true);
  try {
    const jobs = [
      loadReport("perimeter"),
      loadReport("paint"),
      includeBad ? loadReport("missing") : loadReport("transition")
    ];
    const reports = await Promise.all(jobs);
    showAll(reports);
  } catch (error) {
    showError(error.message);
  } finally {
    setLoading(false);
  }
}