【发布时间】:2018-12-19 01:29:29
【问题描述】:
我有这两个功能。
async function testAsync(){
console.log('async func')
}
function callback(){
console.log('callback function.')
}
当我在async 上调用then 时,它可以正常工作,类似于promise。例如,以下代码有效。
bluebird.resolve().then(()=> console.log('then promise'))
testAsync().then(()=> console.log('then async'))
但是当我在async 上调用nodeify 时,它会出错。虽然,它适用于promise
作品->bluebird.resolve().nodeify(callback)
错误 -> testAsync().nodeify(callback)
这是我得到的错误。为什么会这样?
TypeError: testAsync(...).nodeify is not a function
【问题讨论】:
-
简而言之,
.nodify()是 Bluebird Promise 的一种糖方法。原生 javascript 承诺没有这样的方法。 -
使用
Bluebird.resolve(testAsync()).nodify(callback) -
应该使用
.asCallback()而不是.nodeify()与较新的 Bluebird。上一条评论拼错了nodeify
标签: node.js promise async-await