我有这两个功能。
async function testAsync(){
console.log('async func')
}
function callback(){
console.log('callback function.')
}
当我在then
上呼叫async
时,它的工作原理类似于promise
。例如,以下代码有效。
bluebird.resolve().then(()=> console.log('then promise'))
testAsync().then(()=> console.log('then async'))
但是,当我在nodeify
上调用async
时,会出现错误。虽然,它适用于promise
Works-> bluebird.resolve().nodeify(callback)
错误-> testAsync().nodeify(callback)
这是我得到的错误。为什么这样?
TypeError: testAsync(...).nodeify is not a function
答案 0 :(得分:0)
该错误表明本机Promise对象上没有echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
函数。
如果您确实需要使用此功能,则必须从定义它的promise实现中获取它,并在类似nodeify
的对象上调用它,然后希望它不会使用promise实现的任何内部部分。
或者更好地从promise实现中提取函数,因为它只是这样:
p.prototype.nodeify.call(testAsync())
可以用作function nodeify(cb) {
this.then(function (v) { cb(null, v) });
this.catch(function (err) { cb(err) });
}