我正在尝试将文本文件中的文件名列表加载到js数组中。
我尝试使用fs模块执行此操作,虽然我可以在readFile函数中成功打印数组,但是如果我返回数组并尝试在外部打印它,则无法这样做。
const fs = require("fs");
function parseFileList(fileToRead){
fs.readFile(fileToRead, 'utf8', (err, data) => {
if (err) throw err;
const textByLine = data.split("\n").slice(0,-1);
return textByLine;
});
}
const refList = parseFileList(argv.ref);
console.log(refList);
文件中的文件名应以字符串数组形式输出。但是现在它只是打印出来undefined
。我认为这与readFile是异步的事实有关,但是我不确定如何解决它。
那是因为您在回调中得到响应。如果要使此功能正常工作,则必须将其转换为Promise:
function parseFileList(fileToRead){
return new Promise((resolve, reject) => {
fs.readFile(fileToRead, 'utf8', (err, data) => {
if (err) reject(err);
const textByLine = data.split("\n").slice(0,-1);
return resolve(textByLine);
});
})
}
现在您可以像这样使用它:
parseFileList(filename).then(data => console.log(data))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句