使用 npm 文件walker 对每个文件进行异步操作



我正在使用Filewalker遍历目录。但是,对于每个文件,我想执行异步操作。如何确保仅在所有操作完成后触发done

filewalker('.')
  .on('file', function(p, s) {
    processAsync(p);
  })
  .on('done', function() {
    console.log('All files have been processed');
  })
.walk();

由于文件事件不提供任何回调参数on因此请创建文件数组并将每个文件添加到其中。然后在 filewalker done 事件上使用async模块异步处理每个文件。

var filewalker = require('filewalker');
var async = require('async')
function fileAsyncFunc (file, cb) {
  setTimeout(function () {
    console.log('file processed asynchronously')
    cb()
  }, 100)
}
function doneProcessingFiles (err) {
  if (err) {
    return console.error(err)
  }
  console.log('done processing files asynchronously')
}
const files = []
filewalker('./node_modules/filewalker')
  .on('file', function(p, s) {
    //  add file to files array
    files.push({p,s})
  })
  .on('done', function() {
    //  call async functions to each file
    async.each(files, fileAsyncFunc, doneProcessingFiles)
  })
.walk();

相关内容

  • 没有找到相关文章

最新更新