utils.factory.js 910 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. angular.module('odoo.utils.factory', [])
  2. .factory('async', function () {
  3. return {
  4. loop: function (iterations, func, callback) {
  5. var index = 0;
  6. var done = false;
  7. var loop = {
  8. next: function () {
  9. if (done) {
  10. return;
  11. }
  12. if (index < iterations) {
  13. index++;
  14. func(loop);
  15. } else {
  16. done = true;
  17. callback();
  18. }
  19. },
  20. iteration: function() {
  21. return index - 1;
  22. },
  23. break: function() {
  24. done = true;
  25. callback();
  26. }
  27. };
  28. loop.next();
  29. return loop;
  30. }
  31. }
  32. });