In the above example, you call hideSpinnerafter a call setTimeoutthat is preceded by a call to your function showSpinner. Since these 3 function calls take very little time, you couldn’t even notice how the counter appeared, since the spinner is again hidden almost instantly.
What you need to do is call hideSpinnerthe callback function immediately after the call transitionToRouteon your controller.
EDIT
Based on @buuda's suggestion and your new example , I came up with this .
, @buuda, , / AJAX, Ember.RSVP.all().