节点7.1.0新的Promise()parsing器未定义不是一个函数
我在OSX上使用最新的节点版本7.1.0,但是我仍然不能使用Promises。 我明白了
index.js
new Promise();
错误:
new Promise(); ^
TypeError:Promise resolver undefined不是一个函数
节点7.1.0不支持ES6和Promise?
承诺的API要求您将函数传递给承诺构造函数。 引用MDN :
new Promise(/ * executor * / function(resolve,reject){…});
执行者 – 一个与parameter passing的函数parsing和拒绝。 执行器函数由Promise实现立即执行,传递parsing和拒绝函数(在Promise构造器甚至返回创build的对象之前调用执行器)。 parsing和拒绝function在被调用时分别parsing或拒绝承诺。 执行者通常启动一些asynchronous工作,然后,一旦完成,调用parsing或拒绝函数来解决承诺,否则拒绝发生错误。
你可以看到这个答案的用法示例。
节点7.1支持promise。
您必须为Promise构造函数提供callback,以便在parsing或拒绝操作时知道该怎么做。
例如:
var p = new Promise((resolve, reject) => { setTimeout(() => { resolve(); }, 5000); }); p.then(() => { console.log("Got it"); })
5秒后,您将在控制台中看到消息“ Got it
。
Promises: Bluebird有一个非常好的图书馆
检查MDN文档。
我喜欢Google开发者的这篇文章。