es6:generator生成器

2018-12-11  本文已影响0人  gis杭州

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方式,依然是嵌套
上一篇 下一篇

猜你喜欢

热点阅读