我只是搞乱节点的v0.11分支,我想知道为什么我不能使用本机ES6 Promise对象,即使启用了–harmony.
我常用的Chrome浏览器:
Google Chrome 32.0.1700.77 (Official Build 244503) JavaScript V8 3.22.24.10
支持它们,node.js v0.11.11告诉我:
> process.versions.v8 '3.22.24.19'
什么赋予了什么?
解决方法
原生承诺在,您现在可以使用它们.与Bluebird这样的库相比,它们仍然更慢,更难调试,但它们就在那里.
目前在Chrome中的承诺是DOM期货.此外,它们非常具有实验性,API可能会发生变化(在atm上进行了大量讨论).
考虑使用Bluebird promise instead as they’re faster,have better stack traces and are stable.
它比像Q这样的库(比两个数量级更快)快得多,它有更好的堆栈跟踪和完全符合规范的API.你当然也可以自己编译node和v8–有promises in v8 itself.
在ES6中有承诺,它们还没有“定居” – making the Chrome people are quite angry too
它们也被认为是DOM的一部分,因为未来的DOM API将使用promises.