在JavaScript ES6中最激动人心的新特性之一,是一种新的函数,被称为生成器。 这个名字有点陌生,但是其行为可能在初次目睹时更为怪异。本文的目的就是解释 生成器的基本运作原理,帮助你理解为什么对于JS的未来而言,它们是如此的强大。
Run-To-Completion
当我们谈到生成器要考察的第一件事,就是在运行到结束方面,它们和普通的函数有何区别。
不管你是否意识到,你经常能够对函数作出一些相当基本的假设:一旦函数开始执行, 它就会一直执行到结束,在此之前其他任何JS代码都不能运行。
看一个小例子:
1 | setTimeout(function(){ |