我有一个任意数量的文件路径作为字符串存储在数组中。

我需要依次读取这些文件(即在开始读取下一个文件之前先完成读取一个文件),并在读取每个文件后输出文件长度。读取完所有文件后,打印'done'

我只允许使用fs.readFile和本机Javascript。不允许fs.readFileSync或任何其他模块。另外,我在Node v6上,所以不能使用async / await。

有没有遵循约束的方法来实现功能?

最佳答案

您不需要任何必要的东西,例如promise,async / await,生成器即可实现。

function readAllFiles(list) {
  if(list.length == 0) return
  console.log('reading ', list[0])
  return fs.readFile(list[0], function (err, file) {
    if (err) console.error(err); // report the error and continue
    console.log('list[0]' length:', file.length); // report the file length
    readAllFiles(list.slice(1, list.length))
  })
}

var l = ['1', 'foo', 'bar']

readAllFiles(l)

关于javascript - 在Node中读取与fs.readFile串联的文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53832576/

10-09 20:38
查看更多