Managing Nested Asynchronous Callbacks in Objective-C using
ReactiveCocoa  When writing a software application, it is often
necessary to read data from a file or network. The basic
approach for reading data is performed as a blocking operation.
A blocking operation waits until all data is retrieved before
performing the next instruction. Here’s an example of reading a
file in Objective-C:  Software developers often start with
blocking calls because most APIs were originally designed that
way and it’s simple to understand. When reading small files from
disk on a smartphone or computer, blocking time is almost
negligible and probably isn’t even noticed by the user.  In
contrast, reading data over a network connection can be
extremely slow. Especially on smartphones, cellular network
strength degrades when going around buildings and inside
tunnels. As a result, when a network request is made and the
network drops, the blocking call may result in a frozen user
interface. In the best case scenario, the app is slug