es6的Generator函数问题

这是阮大神的es6文章

这是阮大神微博上的截图,讲的Generator函数,看这个栗子一直有一个疑惑,我们可以在页面一开始,或是一个按钮触发 第一次next方法,可是第二次什么时候触发?正常是在回调中,数据加载完毕,页面隐藏,现在这样的写法就是第一次next执行完之后紧接着执行第二次next,那么它是怎么判断数据是否已经加载完毕的呢,希望路过的各位,指点一下,谢谢了。

阅读 2.3k
2 个回答

你可能是没有理解好yield的作用。
yield的作用是执行完其后的函数并且把返回值return到next调用的地方,并且暂停函数,等待下次next开始。

这里其实就是

  1. 第一次next执行后,先加载UI,并且,加载完数据后yield移交控制权,yield这里是等待异步加载数据完成后才返回
  2. 第二次执行next,隐藏UI。

关于你的疑问 现在这样的写法就是第一次next执行完之后紧接着执行第二次next,那么它是怎么判断数据是否已经加载完毕的呢

首先上面仅仅是个示例,描述了一种应用场景,判断数据加载完这和主要讲述的知识逻辑无关,把这些无关紧要的细节写出来就太冗余了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进