1、 执行第一条,name值为undefind,第二条,传入字符串"hehe "会被赋值给上一个生成器执行结果的返回值name
function* gen(){
let name = yield "this is first one";
console.dir(name);
yield name+"this is second one";
yield "this is third one";
yield "this is fourth one";
return "done";
}
const testgen = gen();
console.log(testgen.next());
console.log(testgen.next("hehe "));
// console.log(testgen.next());
// console.log(testgen.next());
// console.log(testgen.next());
image.png
2、必须等上一条yield语句执行完毕才会执行下一条yield语句
这样特性等好处是“可以用同步等方式写异步代码”,例如取服务器数据,不需要再使用回调函数,避免了回调函数多层嵌套的问题。(javascrip回调地狱)
回调地狱示例
promise方式,依然是嵌套
网友评论