收藏
回答

setdata如何做调度?

问题: 在某个组件内,单次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);
});
回答关注问题邀请回答
收藏

2 个回答

  • Lipeng
    Lipeng
    2022-08-08

    forEach里的当前元素变量名chunkProdList,跟forEach的列表重名!在我们这,程序员这么写代码,会被拖出去揍的!

    还有这段代码里的clearTimeout(timer);意义何在呀?

    setTimeout本来就是执行一次,都执行完了,timer就会失效。又不是setInterval,干嘛还要clear它呢?


    2022-08-08
    有用
    回复
  • Frank
    Frank
    发表于小程序端
    2022-08-06

    短时间内调用setData会被合并

    2022-08-06
    有用
    回复
登录 后发表内容