This document discusses promises and futures in iOS development. It begins by explaining callback hell and the problems it causes. It then defines what a promise is, including deferred and settled states. It covers chaining and parallel task patterns using promises, including continueWith, continueOnSuccessWith, continueOnErrorWith, whenAll, and whenAny. It also discusses handling errors. An example is provided using the Bolt framework to create promises from asynchronous and synchronous functions. Finally, it lists the advantages of using promises such as readable, testable and reusable code.