理想情况下,应按需流式处理数据,而不要将所有内容都缓冲到一个大对象中。如果您不能更改此设置,则需要将string化分成较小的单元,并允许主事件循环使用setImmediate处理其他事件。示例代码(我假设主对象具有许多顶级属性,并使用它们来分割工作):
function sendObject(obj, stream) { var keys = Object.keys(obj); function sendSubObj() { setImmediate(function(){ var key = keys.shift(); stream.write('"' + key + '":' + JSON.stringify(obj[key])); if (keys.length > 0) { stream.write(','); sendSubObj(); } else { stream.write('}'); } }); }) stream.write('{'); sendSubObj();}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)