I tried some major restructuring last night because I’m still running into the asynchronous problem. After years of instructional design, I find it quite ironic that I don’t want something to be asynchronous. I had to scrap it all because I broke all the progress I’d made earlier in the day.
Then I learned about when, done, and deferred. Now, I just need to get it to work. Sometimes MDN frustrates the heck out of me. Why can’t they just say, “The function you want to finish before the other thing starts goes here and the other thing goes here”?