Callbacks

The idea is we subscribe to the final signal D, and it cause the previous signals to action.

Triggered by subscribing to the final signal.

We must keep D as it keeps the others around

We subscribe the last D

D 's operation actions, and it cause C 's operation to action, ... then A 's operation actions. It is in A that the task is performed (like fetching network, retrieving database, file access, heavy computation, ...) to get the result, and A 's completion gets called. Then A's completion calls B 's completion with the result mapped by B 's map, ... all the way to the subscriber 's completion block