【发布时间】:2019-01-04 12:48:07
【问题描述】:
我可能在这里遗漏了一些非常明显的东西,但是如何将util.promisify 与看起来像这样的函数一起使用?
function awkwardFunction (options, data, callback) {
// do stuff ...
let item = "stuff message"
return callback(null, response, item)
}
我可以这样称呼:
awkwardFunction ({doIt: true},'some data', (err, result, item) => {
console.log('result')
console.log(result)
console.log('item')
console.log(item)
done()
})
然后回来
result
{ data: 'some data' }
item
stuff message
使用承诺版本时:
let kptest = require('util').promisify(awkwardFunction)
kptest({doIt: true},'some data')
.then((response, item) => {
console.log('response')
console.log(response)
console.log('item')
console.log(item)
})
.catch(err => {
console.log(err)
})
并试图同时访问“响应”和“项目”,似乎第二个参数被忽略了......
result
{ data: 'some data' }
item
undefined
有没有办法在不改变函数的情况下做到这一点(实际上,它是一个库函数,所以我不能)。
【问题讨论】:
标签: node.js