如何使用q来宣传函数以及如何管理错误处理?

时间:2017-10-31 10:04:34

标签: javascript node.js promise es6-promise q

我有一个功能,我已经使用'es6-promisify'进行了宣传。我想使用'q'复制功能。

以下是我正在使用的示例代码:

const promisify = require('es6-promisify')

function asyncFunction (done) {
  console.time('asyncFunction')
  setTimeout(() => {
    console.timeEnd('asyncFunction')
    done()
  }, 500)
}

const asyncFunctionPromise = promisify(asyncFunction)

另外,假设我在运行我已经实现的所述功能时遇到错误。我该如何处理这些错误?

1 个答案:

答案 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类似的语法。

希望这可以帮助那些有关破坏的承诺(双关语)的人。