javascript - Forstå express async handler npm modul kode


Jeg prøvde å forstå koden til express-async-handler

Hvilket I deres Index.js er bare 6 linjer med kode

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

Nå prøvde jeg å forstå ut fra bruken av det hvordan det fungerer.

Fra deres dokument sier det

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

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

Men til min flaks er jeg fortsatt ikke i stand til å få det i eksemplet ovenfor når vi passerer det andre argumentet, altså (rett meg hvis jeg tar feil)

Vi sender kodeutdraget nedenfor til asyncUtil, som skal være argument fn

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

så

  1. Spørsmål: hva og hvordan får vår asyncUntilWrap noe
  2. Hva er bruken av spread-operatoren inne i function(...args)