Мне тоже было трудно понять концепцию сбора результата обещания ^^ ;. Я думаю, это хорошая отправная точка, чтобы помнить, что Promise.all()
может собрать результат Promise.
Пожалуйста, попробуйте ниже.
fs.readdir('Documents', function (err, files) {
// convertingJob = [Promise, Promise,...]
const convertingJob = files.map(function(file) {
// just return promise and it will make above convertingJob array
return mammoth.convertToHtml({path: "Documents/"+file},options)
.then(function(result){
var html = result.value; // The generated HTML
var messages = result.messages; // Any messages, such as warnings during conversion
// docContent.push({
// "skillName" : file,
// "skillData" : html
// })
return {
"skillName" : file,
"skillData" : html
}
})
// .done() // I'm not sure this is necessary
});
Promise.all(convertingJob) // Gather(wait) all Promise results!
.then(jobResults => { // jobResults would be array of objects returned by mammoth
res.render("index",{docContent:jobResults});
})
});