首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用npm filewalker对每个文件进行异步操作

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

Stack Overflow用户
提问于 2017-04-12 16:25:07
回答 1查看 185关注 0票数 0

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

代码语言:javascript
复制
filewalker('.')
  .on('file', function(p, s) {
    processAsync(p);
  })
  .on('done', function() {
    console.log('All files have been processed');
  })
.walk();
EN

回答 1

Stack Overflow用户

发布于 2017-04-14 07:13:48

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

代码语言:javascript
复制
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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43364170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档