我在Node.js中为bluebird编写了测试代码,如下所示:
var Promise = require(‘bluebird’)
var obj = {
func1: function () {
return ‘foo’
},
func2: function () {
return ‘bar’
}
}
console.log("==================================")
Promise.promisifyAll(obj)
obj.func1Async().then(function (result) {
console.log(result)
})
我期望的是打印" foo",但实际上没有任何输出。 有什么问题吗?
答案 0 :(得分:3)
看了一会儿之后,似乎Bluebird promisify在节点式函数上工作,如下所示:
所以在你的情况下,代码应该是:
var obj = {
func1: function (cb) { // note if you add params they need to be before cb and always passed when invoking the func1Async version
cb(null, 'foo'); // null => no error
},
func2: function (cb) {
cb(null, 'bar'); // null => no error
}
}
然后它有效。丑陋 - 但它应该如何。