332590
先贴出让我困惑的结果:
代码:
var fs = require('fs')
fs.readdir('node_modules',function(err,files){
if(err){
console.log(err)
}else{
//console.log(files)
let filesArr=[];
for(var i=0;i<files.length;i++){
(function(i){
fs.stat('node_modules/'+files[i],(e,stats)=>{
// console.log('files['+i+'] : '+files[i])
if(stats.isDirectory()){
filesArr.push(files[i])
if(i === files.length-1){
console.log('目录:-----'+filesArr)
}
}
console.log('files['+i+'] : '+files[i])
})
})(i)
}
}
})
上述示例中有时得到的filesArr仅有nav目录,有时候得到的结果是nav和 bar目录都有,为什么呢?我以为异步函数是按照顺序依次加入到队列中的,然后依次执行,不是这样的吗?