File: //proc/1526/task/1533/cwd/tana/frontend/node_modules/foreachasync/forEachAsync.js
/*jshint -W054 */
;(function (exports) {
  'use strict';
  function forEachAsync(arr, fn, thisArg) {
    var dones = []
      , index = -1
      ;
    function next(BREAK, result) {
      index += 1;
      if (index === arr.length || BREAK === forEachAsync.__BREAK) {
        dones.forEach(function (done) {
          done.call(thisArg, result);
        });
        return;
      }
      fn.call(thisArg, next, arr[index], index, arr);
    }
    setTimeout(next, 4);
    return {
      then: function (_done) {
        dones.push(_done);
        return this;
      }
    };
  }
  forEachAsync.__BREAK = {};
  exports.forEachAsync = forEachAsync;
}('undefined' !== typeof exports && exports || new Function('return this')()));