title: when to use $scope.$apply in angular
body: <p>I am a little confused about how <code>$scope.$apply</code> and <code>digest loops</code> function. From what I understand, since digest loops runs at regular intervals and not always, we can force the digest loop to run on certain scope variables which we want to update immediately. Also in the description <a href="https://github.com/angular/angular.js/wiki/When-to-use-$scope.$apply()" rel="nofollow">here</a>, it's given that <code>$scope.$apply</code> should be used when an <code>async call</code> is made, so that variables can be updated. My doubt is if digest loop doesn't run always, how are scope variables almost instantaneously updated in the <code>view/controller</code>?</p>