I wouldn’t say that you need to use promises, but I would definitely get rid of the setTimeout. It’s natural to want to use it in this case, but there is zero chance you would ever do this in production, so it’s best to learn how to deal with asynchronicity now. The good news, though, is that most of your code is fine and dandy. While promises are absolutely the best way to go here, you could simply rethink how and when you render your HTML. Check out this awesome video on using jQuery with Handlebars.

If you’re really burnt out, I suggest you go onto the next project, but plan on refactoring this one.