title: Implement a delay on $scope.$watch
body: <p>I was wondering whether or not it is possible to implement a slight delay on $scope.$watch. I have the following which queries the server, so I'd like to implement a slight delay before it evaluates the <code>query</code> before querying the server. I've noticed that if you type to quickly it gets confused and doesn't send the correct information:</p>
  
  <pre><code>$scope.$watch("query", function () {
      $scope.loading = true;
      returnFactory.query($scope.query).then(function (returns) {
          $scope.returns = returns;
          $scope.loading = false;
      });
  });
  </code></pre>