diff options
Diffstat (limited to 'lib/template.js')
-rw-r--r-- | lib/template.js | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/template.js b/lib/template.js index 91b4850..08e1877 100644 --- a/lib/template.js +++ b/lib/template.js @@ -6,6 +6,7 @@ var nunjucks = require("nunjucks"); var git = require("./utils/git"); var stringUtils = require("./utils/string"); var fs = require("./utils/fs"); +var batch = require("./utils/batch"); var pkg = require("../package.json"); @@ -368,16 +369,19 @@ TemplateEngine.prototype.postProcess = function(content) { return Q(content) .then(that.replaceBlocks) .then(function(content) { - return Q.all(_.map(that.blocks, function(blk, blkId) { - return Q() - .then(function() { - if (!blk.post) return Q(); - return blk.post(); - }) - .then(function() { - delete that.blocks[blkId]; - }); - })) + return batch.execEach(that.blocks, { + max: 20, + fn: function(blk, blkId) { + return Q() + .then(function() { + if (!blk.post) return Q(); + return blk.post(); + }) + .then(function() { + delete that.blocks[blkId]; + }); + } + }) .thenResolve(content); }); }; |