In this article, I am going to look at the possibility of composing asynchronous middleware in a similar way to Koa. All of the code can be transpiled by Babel using the presets for es2015 and stage-2. By now I am sure most people are up-to-date with the async specification for ES7. It allows for async defined functions to pause execution and await asynchronous calls to resolve before continuing.
![Experimenting with async/await middleware composition](https://cdn-ak-scissors.b.st-hatena.com/image/square/23753d2608505e7bd0a93157d802cecbff33bc20/height=288;version=1;width=512/http%3A%2F%2Ffourthof5.com%2Fassets%2Fcommon%2Fimages%2Flogo.png)