| 38 | // in series in the browser and the server. |
| 39 | // |
| 40 | function _asyncEverySeries (arr, iterator, callback) { |
| 41 | if (!arr.length) { |
| 42 | return callback(); |
| 43 | } |
| 44 | |
| 45 | var completed = 0; |
| 46 | (function iterate() { |
| 47 | iterator(arr[completed], function (err) { |
| 48 | if (err || err === false) { |
| 49 | callback(err); |
| 50 | callback = function () {}; |
| 51 | } |
| 52 | else { |
| 53 | completed += 1; |
| 54 | if (completed === arr.length) { |
| 55 | callback(); |
| 56 | } |
| 57 | else { |
| 58 | iterate(); |
| 59 | } |
| 60 | } |
| 61 | }); |
| 62 | })(); |
| 63 | } |
| 64 | |
| 65 | // |
| 66 | // Helper function for expanding "named" matches |