如何使用 q 来承诺一个函数以及如何管理错误处理?
How to promisify a function using q and how to manage error handling?
我有一个功能,我已经承诺使用 'es6-promisify'。我想使用 'q'.
复制功能
这是我正在使用的示例代码:
const promisify = require('es6-promisify')
function asyncFunction (done) {
console.time('asyncFunction')
setTimeout(() => {
console.timeEnd('asyncFunction')
done()
}, 500)
}
const asyncFunctionPromise = promisify(asyncFunction)
此外,假设我在 运行 我承诺的上述功能时遇到错误。我该如何处理这些错误?
我今天在 '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.
希望这对那些有违背承诺(双关语意)问题的人有所帮助。
我有一个功能,我已经承诺使用 'es6-promisify'。我想使用 'q'.
复制功能这是我正在使用的示例代码:
const promisify = require('es6-promisify')
function asyncFunction (done) {
console.time('asyncFunction')
setTimeout(() => {
console.timeEnd('asyncFunction')
done()
}, 500)
}
const asyncFunctionPromise = promisify(asyncFunction)
此外,假设我在 运行 我承诺的上述功能时遇到错误。我该如何处理这些错误?
我今天在 '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.
希望这对那些有违背承诺(双关语意)问题的人有所帮助。