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å
- Spørsmål: hva og hvordan får vår asyncUntilWrap noe
- Hva er bruken av spread-operatoren inne i
function(...args)