Asynchronous programming is arguably one of the hardest parts of building most apps. Because of this, many solutions have been invented to try to combat the above problem - basically creating abstractions around asynchronous programming to make it easier to understand and reason about.
This week, let's take a look at one such solution - Futures & Promises - and go a bit "under the hood" to see how they actually work.