Book Image

AngularJS Web application development Cookbook

By : Matthew Frisbie
Book Image

AngularJS Web application development Cookbook

By: Matthew Frisbie

Overview of this book

Packed with easy-to-follow recipes, this practical guide will show you how to unleash the full might of the AngularJS framework. Skip straight to practical solutions and quick, functional answers to your problems without hand-holding or slogging through the basics. Avoid antipatterns and pitfalls, and squeeze the maximum amount out of the most powerful parts of the framework, from creating promise-driven applications to building an extensible event bus. Throughout, take advantage of a clear problem-solving approach that offers code samples and explanations of components you should be using in your production applications.
Table of Contents (17 chapters)
AngularJS Web Application Development Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Implementing promise barriers with $q.all()


You might find that your application requires the use of promises in an all-or-nothing type of situation. That is, it will need to collectively evaluate a group of promises, and that collection will be resolved as a single promise if and only if all of the contained promises are resolved; if any one of them is rejected, the aggregate promise will be rejected.

How to do it…

The $q.all() method accepts an enumerable collection of promises, either an array of promise objects or an object with a number of promise properties, and will attempt to resolve all of them as a single aggregate promise. The parameter of the aggregate resolved handler will be an array or object that matches the resolved values of the contained promises. This is shown here:

var deferred1 = $q.defer()
  , promise1 = deferred1.promise
  , deferred2 = $q.defer()
  , promise2 = deferred2.promise;

$q.all([promise1, promise2]).then($log.log);

deferred1.resolve(456);
deferred2.resolve...