我在OSX上使用最新的节点版本7.1.0,但我仍然无法使用Promises.我明白了
index.js
new Promise();
Run Code Online (Sandbox Code Playgroud)
错误:
Run Code Online (Sandbox Code Playgroud)new Promise(); ^TypeError:Promise resolver undefined不是函数
节点7.1.0不支持ES6和Promise吗?
Ben*_*aum 23
promises的API要求您将函数传递给promise构造函数.引用MDN:
new Promise(/*executor*/function(resolve,reject){...});
executor - 使用参数resolve和reject传递的函数.执行函数由Promise实现立即执行,传递resolve和reject函数(在Promise构造函数甚至返回创建的对象之前调用执行程序).调用时,resolve和reject函数分别解析或拒绝promise.执行程序通常启动一些异步工作,然后,一旦完成,调用resolve或reject函数来解析promise,否则在发生错误时拒绝它.
您可以在使用示例中看到此答案.
Node 7.1支持promises.
bpi*_*lva 20
您必须向Promise构造函数提供回调,以便它在解析或拒绝操作时知道该怎么做.
例如:
var p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, 5000);
});
p.then(() => {
console.log("Got it");
})
Run Code Online (Sandbox Code Playgroud)
5秒后,您将Got it在控制台中看到该消息.
Promises:Bluebird有一个非常好的图书馆
还要检查MDN文档.
我喜欢谷歌开发者的这篇文章.