The promise API with $q

JavaScript programmers are accustomed to the asynchronous programming model. Both a browser and the node.js execution environments are full of asynchronous events: XHR responses, DOM events, IO and timeouts, which can be triggered at any moment and in random order. Even if, we are all used to coping with the asynchronous nature of the execution environment the truth is that asynchronous programming might be perplexing, especially when it comes to synchronizing multiple asynchronous events.

In the synchronous world chaining function calls (invoking a function with a result of another function) and handling exceptions (with try/catch) is straightforward. In the asynchronous world, we can't simply chain function calls; we need ...

Get Mastering Web Application Development with AngularJS now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.