"I love async, but I can't code like this." It's the refrain of JavaScript newcomers everywhere as event-driven code devolves into a mess of nested callbacks. Is single-threaded code sustainable in a multi-tasking, multi-core world? This talk answers that question with an emphatic "yes," thanks to a few simple techniques—most notably Promises.