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
暂无评论内容