CoffeeScript 1.9 最终引入了期待已久的生成器(generator),这将会防止开发人员陷入回调函数的陷阱,并帮助他们编写异步代码。
简单说,生成器是这样一类函数,你可以中途从中退出,后面再进来,再进来时,之前的变量值都会保留。CoffeeScript 1.9 使用新的关键字 yield
来定义生成器函数。下面是一个简单的生成器的例子:
foo = -> i = 0 yield i +1 yield i +2
重复调用这个生成器函数,会依次返回被 yield 的值,先是 1,然后是 2。
生成器是 ECMAScript 6 提案的一部分,并且已经在之前的 node 0.11 中引入,不过只有在你把--harmony-generators
参数传递给 node 时,这个功能才会打开。不管是不是和promises 一起用,生成器都可以替代回调函数来处理异步代码。
CoffeeScript 也提供了其他一些功能:
- 改进了字符串和正则表达式的解析和错误处理。
- 使用新的策略来生成内部编译器变量,这意味着声明为
@parameter
的变量不能再作为实例在函数内部使用。 - 修复了 REPL 和最新的 node.js 和 lo.ja 之间的兼容性问题。
CoffeeScript 是一种能编译成 JavaScript 的语言,它的目标是使用简单的方法展现JavaScript 好的一面。
查看英文原文: CoffeeScript 1.9 is Available, Introduces Generators Support
评论