我是javascript / node.js事件驱动范例的新手。
我需要在forEach之后停止for,以确保所有文件都已被读取然后我继续。我应该如何在这种情况下实施wait_for_all_files_read()
?
my_list.forEach(function(element) {
fs.readFile(element.file_path, function(err, data) {
if(err) throw err;
element.obj=JSON.parse(data);
});
});
wait_for_all_files_read(); <-----------
analyze(my_list)
答案 0 :(得分:1)
我该怎么做:
类似的东西:
const {promisisfy} = require('util')
const fs = require('fs')
const readFile = promisify(fs.readFile)
const fileNames = getFilenamesArray();
async function executeMe() {
try {
const arrayWithFilesContent = await Promise.all(
fileNames.map(name => readFile(name))
);
return analyze(arrayWithFilesContent);
}
catch (err) {
handleError(err)
}
}
executeMe();