There is an excellent article on promisejs.org detailing how to combine promises with generators to achieve much cleaner code. Instead of the
async function the article proposes, you can use
This article is partially or completely unfinished. You are welcome to create pull requests to help completing this article.