javascript 对yield生成器的理解

什么情况下可以使用yield,如果你后端传过来的数据量较大,你可以使用yield来进行懒加载,避免一次性的加载对前端造成卡顿,或长时间渲染等待,比较如说加载10万或几十万条数据时,前端一方面要读取一方面还要渲染

yield生成器,在函数名前加*号,返回时用yield

javascript 复制代码
function *gen(data)
{
	yield data;
	return true;
}

//使用方法
let arr=[1,2,3,4,5,6];
let splitdata=get(arr),
a=splitdata.next();
//输出数组
console.info(a.value);

//如果数据量比较大可以函数进行分割成小数组,100个为一组,如果上万条就1000个为一组,解决前端压力,每次只渲染1千,按下一页或向下滑再渲染新数据出来
function *group(data)
{
	let result=[];
        let groupItem=[];

        for(let k=0;k<data.length;k++)
        {
            if(k%100===0)
            {
                !!groupItem && result.push(groupItem);
                groupItem=[];
            }
            groupItem.push(data[k]);
        }

        result.push(groupItem);

        yield result;
        return true;
}
//arr如果有1万条以上数据,则会被分割
let splitdata2=group(arr);
let s=splitdata2.next();
for(let k=0;k<s.value.length;s++)
{
	//判断数组不为空
	if(s.value[k].length>0)
	{
		console.info(s.value[k]);
	}
}
相关推荐
南境十里·墨染春水2 分钟前
linux学习进展 线程同步——条件变量
java·开发语言·学习
sghuter5 分钟前
数字资源分发的技术架构与未来趋势
c语言·开发语言·后端·青少年编程
VagueVibes7 分钟前
Openclaw 快速接入 DeepSeek V4 Pro 指南
javascript
普修罗双战士13 分钟前
【开发工具IDEA调试,高频使用, IntelliJ IDEA 调试快捷键完全指南】
java·开发语言·intellij-idea
海参崴-19 分钟前
C++ 进阶篇 STL 模拟实现二叉搜索树
开发语言·c++
Sakuyu4346824 分钟前
C语言基础(三)
c语言·开发语言
A_nanda24 分钟前
VS2022安装QT6.5.3后,如何更新项目配置
前端·javascript·vue.js
郝学胜-神的一滴26 分钟前
深入epoll反应堆模型:从libevent源码看高性能IO设计精髓
linux·服务器·开发语言·c++·网络协议·unix·信息与通信
XS03010628 分钟前
Java 基础(十)异常
java·开发语言·oracle
和小潘一起学AI28 分钟前
Python导入私有模块(企业级方案)
开发语言·python