$timeout vs $evalasync

a quick demo evaluating the thin difference between $timeout and $evalAsync

by Samar Pattanayak

HTML

<div ng-app="myApp">
<div ng-controller="myController">
{{val}}
</div>
</div>

JavaScript

var ang= angular.module("myApp", []);
ang.controller("myController", function($scope,$timeout,$rootScope ){
	$scope.val="$timeout vs $evalAsync";
	$timeout(function(){
  	console.log("1st timeout " + $scope.val);
  });
  
  $scope.$evalAsync(function(){
  	console.log("Eval Async " + $scope.val);
  });
 console.log($scope.$$phase);
  if(!$scope.$$phase){
  	$scope.$apply(function(){
  		console.log("apply Async 2");
  	});
  }
  //$rootscope.$applyAsync();
  console.log($scope.$$phase);
  $timeout(function(){  
  	console.log("2nd timeout " + $scope.val);
  },10);
  
  $scope.$eval(function(){
  	console.log("eval is running "+ $scope.val);
  })
  $scope.val="Value changed ";
    
  
});