Lorsque j'appelle pdfCreate
, un incident est chargé, ce qui fonctionne correctement.L'événement Nodejs dans promis ne résout pas
Puis createIncidentReport
est appelé à partir d'un service inclus, cela fonctionne très bien.
pdfStream.on('finish')
est appelée une fois que le fichier PDF est écrit sur le disque, cela fonctionne très bien sur la console. Le journal est écrit, mais le service de messagerie n'est pas appelé. Comment devrais-je résoudre la promesse?
function pdfCreate(incidentId) {
Incident.findById(incidentId)
.then(incident => pdfService.createIncidentReport(incident))
.then(() => mailservice.sendPdfCreatedMail(incident));
}
function createIncidentReport(incident, res) {
return new Promise((resolve, reject) => {
let pdfStream = fs.createWriteStream(settings.PDF.DIRECTORY + incident.id + '.pdf');
incidentReport.pipe(pdfStream);
pdfStream.on('finish', function() {
console.log('finished writing pdf')
resolve();
});
}
}
function sendPdfCreatedMail(incident) {
console.log('mail');
let message = {
to: incident.reporter.email,
subject: 'Incident completed',
text: 'Incident has been completed.',
html: 'Incident has been completed.'
};
sendMessage(message);
}
Avez-vous l'événement finsh de pdf Stream? Le console.log 'montre-t-il fini d'écrire pdf? –
oui il montre la finition de la console ... – Nealv