Node – callback函数停止处理大数组
我在node.js应用程序中处理大约28,000个相当大的对象的数组。 出于某种原因,当我在数组中超过10,000个项目时,这个数据处理任务的最后一个模块是不会被调用的 – 它只是挂在最后。 如果我将数组拼接到大约1或2千个对象,那么它就可以完美地工作。
我很迷茫 我一直在盯着这个bug。 我最初认为这是一个q的错误,但在尝试提出的解决schemeq和replace与asynchronousq,执行仍然停止。
代码基本如下所示:
main.js
var task1 = require('task1'); var buggyTask = require('task2'); var notCalledTask = require('task3'); return task1().then(buggyTask).then(notCalledTask);
buggyTask.js
module.exports = function(items) { var updateOrInsertData = function(item) { return Q(Item.create(item)); }; return Q.all(items.map(updateOrInsertData)); };
我应该补充一点,该程序绝对不是内存不足。 我用--max-old-space-size=4096
运行它