2016-02-12 135 views
3

我有一个函数makeThings(n),它返回一个Promise来创建n个项目(通过Sequelize)。如何用一个声明产生多个常量

有人建议我使用这种格式检索值:

const [thing1, thing2] = yield makeThings(2);

我无法找到该分配常数/变量,在互联网上的任何东西。你见过这个吗?它是如何工作的?我的机器不喜欢它,并吐出一个意外的令牌“[”错误。

也许它可能是一个npm包,我不知道?

使用Node.js 5.1.0,ES6

+2

您需要将'--harmony_destructuring'传递给nodejs以启用解构。 – MinusFour

回答

5

这是ES6中的一件事。这就是所谓的 “解构赋值”

的ECMAScript 6

var list = [ 1, 2, 3 ] 
var [ a, , b ] = list 
[ b, a ] = [ a, b ] 

的ECMAScript 5

var list = [ 1, 2, 3 ]; 
var a = list[0], b = list[2]; 
var tmp = a; a = b; b = tmp; 

这是一个从http://es6-features.org/#ArrayMatching。 这是一个非常好的网站,介绍了es6中的一些新功能。