As on
file event doesn't provide any callback param, create files array and add each file to it. Then on filewalker done
event use async
module to process each file asynchronously.
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();