【发布时间】:2017-10-18 02:16:20
【问题描述】:
根据 Bluebird 关于promisification 的文档:
如果对象已经有方法的承诺版本,它将被跳过。
事实上,promisifyAll() 还创建了一个已经承诺的函数的Async 版本,预计是:
幂等的意思是承诺的函数会立即返回。
正如问题Idempotent promisify #159中指出的那样
所以在下面的例子中,我期望obj.foo() 和obj.fooAsync() 有相同的结果。
let obj = {
foo: function(){
return Promise.resolve('I am foo!!!')
}
}
obj = Promise.promisifyAll(obj)
obj.foo().then(msg => console.log(msg)) // > I am foo
obj.fooAsync().then(msg => console.log(msg)) // prints nothing
我误解了哪一部分?
运行示例here
【问题讨论】: