
1、不断调用generator对象的next()方法,执行generator代码,然后,每次遇到yieldx;返回一个对象,然后暂停。
varf=fib(5);
f.next();//{value:0,done:false}
f.next();//{value:1,done:false}
f.next();//{value:1,done:false}
f.next();//{value:2,done:false}
f.next();//{value:3,done:false}
f.next();//{value:undefined,done:true}
2、直接用for…of循环迭代generator对象,不需要自己判断done。
function*fib(max){
vart,
a=0,b=1,n=0;
while(n<max){
yielda;
[a,b]=[b,a+b];
n++;
}
return;
}
for(varxoffib(10)){
console.log(x);//依次输出0,1,1,2,3,...
}原文来自:https://www.py.cn © 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



















































暂无评论内容