resolve(data_collection);
_.map
var mammoth = require("mammoth");
var glob = require("glob");
function readAllFiles(dir){
return new Promise((resolve, reject) => {
glob(dir, (err, files) => {
if(err) {
return reject(err)
}
return Promise.all(files.map((file) => mammoth.extractRawText({ path: file })))
.then((results) => {
let data = ''
results.forEach((result) => {
const value = result.value.replace(/(^[ \t]*\n)/gm, "").replace('\r', '')
data = data.concat(value)
})
resolve(data)
})
.catch(reject)
})
})
}
async function test() {
const data = await readAllFiles('./test/**/*.docx') // All my docx files are in the test directory
console.log(data) // Print data
}
test()
请注意,这将并行执行mammath.extractrawtext函数调用。如果需要限制同时进行的并行调用的数量,可以使用
async.mapLimit