问题: 在某个组件内,单次setData的数据(数组)过多导致渲染延迟,想对数组进行拆封chunk,多次setData
结果:代码如下,后期的setTimeOut延时很严重,而且会有内存泄漏,可以帮我看看这端代码有什么问题么
const chunkProdList = chunk(nextProdList, 30);
chunkProdList.forEach((chunkProdList, index) => {
const timer = setTimeout(() => {
widget.setting.prods.prodList.push(...chunkProdList);
clearTimeout(timer);
}, index * 100);
});
forEach里的当前元素变量名chunkProdList,跟forEach的列表重名!在我们这,程序员这么写代码,会被拖出去揍的!
还有这段代码里的clearTimeout(timer);意义何在呀?
setTimeout本来就是执行一次,都执行完了,timer就会失效。又不是setInterval,干嘛还要clear它呢?
短时间内调用setData会被合并