Javascript Lazy.stringify
问题-- 用户使用库将日志发送到后端。该库有一个循环缓冲区,因此没有超过几百个元素 但是,我们不控制发送的元素的大小,因此有效负载可能大于10mb 我希望通过对有效负载的总体大小进行限制来减少这种情况 但是,我认为没有办法获得对象的Javascript Lazy.stringify,javascript,Javascript,问题-- 用户使用库将日志发送到后端。该库有一个循环缓冲区,因此没有超过几百个元素 但是,我们不控制发送的元素的大小,因此有效负载可能大于10mb 我希望通过对有效负载的总体大小进行限制来减少这种情况 但是,我认为没有办法获得对象的大小 我想的是一种懒惰的JSON.stringify var res = "["; messages.forEach(m => { if (res.length < MAX_SIZE) { res += JSON.stringify(m);
大小
我想的是一种懒惰的JSON.stringify
var res = "[";
messages.forEach(m => {
if (res.length < MAX_SIZE) {
res += JSON.stringify(m);
res += ",";
})
});
res += "]"
var res=“[”;
messages.forEach(m=>{
if(分辨率长度<最大尺寸){
res+=JSON.stringify(m);
res+=“,”;
})
});
res+=“]”
有更好的方法吗?如果(JSON.stringify(obj.length>arbirylimit)抛出新的错误(“太大的有效负载”),则不会执行if代码>足够简单吗?您不需要截断JSON,是吗?如果你这样做了,你有多在乎效率?你可以使用some/each而不是forEach提前停止,而不是继续迭代并每次都失败。