我很难理解下面的代码为何抛出未处理的承诺拒绝警告:
router.post('/stampaClasse/:as(20[0-9][0-9]/[0-9][0-9])/:classe([1-8])',async function (req,res,next){
const sezioni = await Classi.getSezioniFromAnnoScolasticoAndClasse(req.params.as,req.params.classe);
let options = {
semestre: req.body.semestre,
fontSize: req.body.fontSize,
textColor: '#515151',
gridColor: '#bec0be',
corDidattico:{
titolo:'prof.',
nome:'Roberto',
cognome:'Dalema'
}
}
let newPDF = new pdfKit();
try{
for(sezione of sezioni){
const idStudentiPromise = Classi.getStudentiFromAnnoScolasticoAndClasseAndSezione(req.params.as,req.params.classe,sezione)
const materiePromise = Classi.getMaterieSezione(req.params.as,req.params.classe,sezione)
const infoStudentiPromise = Promise.all( Studenti.getInfoStudentiById(await idStudentiResults) )
let classe = {
annoScolastico: req.params.as,
classe : req.params.classe,
sezione: sezione,
materie: await materiePromise,
studenti: await infoStudentiPromise
}
for(studente of classe.studenti){
studente.pagelleMateriePromises = classe.materie.map(async m=>Pagelle.getPagellaFromStudente(classe.annoScolastico,classe.classe,classe.sezione,m,studente.id));
}
for(studente of classe.studenti){
studente.pagelleMaterie = await Promise.all(studente.pagelleMateriePromises)
addHeader(newPDF,studente,classe,options);
addPagelleSemestre(newPDF,studente,classe,options);
addFooter(newPDF,studente,classe,options);
}
}
newPDF.pipe(res);
newPDF.end();
}
catch(err){
next(err)
}
});
错误多次发生,并且是由于在行
const infoStudentiPromise = Promise.all( Studenti.getInfoStudentiById(await idStudentiResults) )
idStudentiResults alredy返回Promise.all()
致谢是什么原因导致的错误,我想知道为什么它说错误没有得到处理。尝试抓住不是笑吗?
答案 0 :(得分:0)
Promise.all
需要接收一组诺言作为参数。确保Module.getInfo(ids)
返回该值。