了解Express异步处理程序NPM模块代码

时间:2019-07-11 10:42:09

标签: javascript typescript

我试图理解express-async-handler的代码

在他们的Index.js中只有6行代码

const asyncUtil = fn =>
function asyncUtilWrap(...args) {
  const fnReturn = fn(...args)
  const next = args[args.length-1]
  return Promise.resolve(fnReturn).catch(next)
}

module.exports = asyncUtil

现在,我正在尝试从用法中了解它是如何工作的。

从他们的文档中说

const asyncHandler = require('express-async-handler')

express.get('/', asyncHandler(async (req, res, next) => {
    const bar = await foo.findAll();
    res.send(bar)
}))

但是,幸运的是,在上面的示例中,当我们传递第二个参数时(例如,如果我错了,请纠正我),我仍然无法得到它

我们正在将下面的代码片段传递给asyncUtil,它将作为参数fn

async (req, res, next) => {
    const bar = await foo.findAll();
    res.send(bar)
}))

然后

  1. 问题:什么如何我们的asyncUntilWrap会发生什么
  2. function(...args)内散布运算符的用途是什么

0 个答案:

没有答案