我有一个功能,我已经使用'es6-promisify'进行了宣传。我想使用'q'复制功能。
以下是我正在使用的示例代码:
const promisify = require('es6-promisify')
function asyncFunction (done) {
console.time('asyncFunction')
setTimeout(() => {
console.timeEnd('asyncFunction')
done()
}, 500)
}
const asyncFunctionPromise = promisify(asyncFunction)
另外,假设我在运行我已经实现的所述功能时遇到错误。我该如何处理这些错误?
答案 0 :(得分:0)
我今天在'q'库中乱搞了很长一段时间,最后觉得我已经找到了办法。
这就是我所做的,而且非常简单,现在我想起来了。
const q = require('q')
function asyncFunction (done) {
console.time('asyncFunction')
setTimeout(() => {
console.timeEnd('asyncFunction')
done()
}, 500)
}
const asyncFunctionPromise = q.denodeify(asyncFunction)
而不是
const promisify = require('es6-promisify')
使用
const q = require('q')
并替换
const asyncFunctionPromise = promisify(asyncFunction)
与
const asyncFunctionPromise = q.denodeify(asyncFunction)
关于错误处理:处理函数内的错误。 Promise会自动处理这些错误。
PS:你也可以使用q.deferred来创建Promises。它具有与jQuery.deferred类似的语法。
希望这可以帮助那些有关破坏的承诺(双关语)的人。