【发布时间】:2021-07-19 17:11:24
【问题描述】:
我有 10 个不同的文件,我需要读取它们的内容并将其合并到一个对象中(在 NodeJS 中)。我用下面的代码成功地做到了:
const fs = require('fs');
const path = require('path');
const { promisify } = require("util");
const readFileAsync = promisify(fs.readFile);
let filePathArray = ['path/to/file/one', ... , 'path/to/file/ten'];
Promise.all(
filePathArray.map(filePath => {
return readFileAsync(filePath);
})
).then(responses => { //array of 10 reponses
let combinedFileContent = {};
responses.forEach((itemFileContent, index) => {
let tempContent = JSON.parse(itemFileContent);
//merge tempContent into combinedFileContent
}
});
但我想知道的是,如果在尝试读取文件时出现错误,如何发现?读取单个文件时,其工作原理如下:
fs.readFile(singleFilePath, (singleFileErr, singleFileContent) => {
if (singleFileErr) {
//do something on error, while trying to read the file
}
});
所以我的问题是,如何从第二个代码 sn-p 访问错误 inn 第一个代码 sn-p,它对应于 singleFileErr?
我面临的问题是:如果某些文件不存在,我想检查错误并跳过此文件,但由于我无法检测到当前实现的错误,我的整个块崩溃并且我无法因为这个而合并其他9个文件。我想使用我在第二个 sn-p 中提到的错误检查。
【问题讨论】: