var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.output = '\n';
  
  var f = function(i) {
    return Promise.method(function() {
      $scope.output += 'test:'+i+'\n';
      $scope.$applyAsync();
      return i;
    });
  };

  var tasks = [];
  for (var i = 0; i < 10; i++) {
    tasks.push(f(i));
  }
  
  $scope.go = function() {
    $scope.output = '\n';
    Promise.reduce(tasks, function(_, task) {
      return task().delay(1000);
    }, null);
  }
});
<!DOCTYPE html>
<html ng-app="plunker">

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.14/angular.js" data-semver="1.3.14"></script>
  <script data-require="bluebird@*" data-semver="1.2.2" src="http://cdnjs.cloudflare.com/ajax/libs/bluebird/1.2.2/bluebird.min.js"></script>
  <script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
  <button ng-click="go()">Go</button>
  <pre>
    {{output}}
    </pre>
</body>

</html>
/* Put your css in here */