Here is the situation: You have a user who spams input on your AngularJS app, and this of course is creating all kinds of async data calls on the backend. The problem is, as each of these data fetchs come back, the user will see the data change multiple times on the screen and hopefully the data the user finally rested on is the one that comes in last so that's what they see.
But we can't count on that because async means that order isn't guaranteed. There is very much a possibility that the data for Page C arrives before the data for Page B that the user skipped over without waiting for display. Now, the user sees the data for Page B because that returned last but they think they are seeing Page C. How do we protect against this?