关于ES6上的Generator is already running相关问题的唠叨

了解了ES6的同学都知道,Generator是一个异步的操作方法,有在执行异步的时候等待的效果。

但有时候,我们在编写的时候,容易出现同步与异步的混合编写。

例如,判断某个条件下,会分为异步和同步的两种执行方式。

如果你的程序执行,出现了Generator is already running,可能你就进入了一个同步与异步的误区。

比如执行了一次next(),在方法里面判断这里处理同步的需求,在同步完成后又执行了一次next(),这一次对JS的单进程来说,就是上一次的next尚未结束,又开始了新的一次next,固然导致出现这个错误的警告。

我们需要通过一些方法去绕过同步中的next,例如本身就是异步的回调,又或者临时加一个setTimeout(function,time),这样就能避免这个矛盾的错误。


注:以上的运行,我是基于NodeJS在做,没有在Chrome上运行过。

maodun.jpg

阅读: 1648
在同意共创许可协议(CC BY-NC-SA-4.0)的前提下,您可以转载本文。
橙色阳光
https://oss.so/article/82

相关阅读

留言评论

暂无留言
关于各种NPM问题,推荐使用Yarn,安装速度快,没用各种奇葩的错误,方便快捷。
收集的NodeJS代码片段: NodeJS Tools

最新留言

  • soshine 在《ZBlogPHP外链插件免费送!独家免费插件!》中留言
    很好的插件,如果能更自动化一点就好了,自动将淘宝客外链转换成对应的文章ID形式。
  • 橙色阳光 在《纯Javascript实现淡入淡出效果》中留言
    讲真,我现在的淡入淡出都是用css3+setTimeout了,用这个方案也是当年的一些想法。
  • 橙色阳光 在《基于jQuery的简易幻灯插件 - OsSliderJS》中留言
    讲真,这段JS大家不要看了……
  • BeautifulDays 在《三年了,我依然还在》中留言
    兴趣变工作,工作成为一种乐趣。这也蛮好的啊,工作之余可以在优化自己的博客,在博客上分享自己的一些心得、知识,毕竟,博客,现在已经越来越多的被今日头条,新浪微博,腾讯微博、微信公众号等第三方自营体APP取代了。能坚持下去的真不容易。给你一个赞!
  • 柒柒 在《移动端Touch事件preventDefault以后影响click事件触发的不科学解决方案》中留言
    先赞再说
  • 大谋 在《Chrome内核对css中rem大小单位文本font-size处理BUG参考解决方案》中留言
    还是你这里好看