This visual trace shows how JavaScript promises work with then() and catch() methods. A promise starts pending, then either resolves or rejects. When it resolves, the then() callback runs to handle the result. If it rejects, the catch() callback runs to handle the error. The example code creates a promise that resolves immediately with 'Done'. The execution table shows the promise state changes and which callbacks run step-by-step. The variable tracker shows how the promise state and result variables change. Key moments clarify why catch() does not run here and what would happen if the promise rejected. The quiz questions test understanding of when callbacks run and variable values during execution. This helps beginners see the flow of asynchronous code handling with promises.