In my early days with mobile dev, I used to think asynchronous operations had only 3 states => Loading || Success || Failure
It seemed simple enough until I started working on complex projects, then the edge cases started appearing.
What happens before the operation even...