求教,为什么在node中,循环遍历读取文件状态,在内部push进数组可以拿到数据,但是在forEach循环中打印数组为空。
4 回复
因为 console.log 执行到的时候,写在回调里面的 arr.push
还没执行到
@hsiaosiyuan0 有什么方法可以在外部拿到 arr.push 的数据吗?
function readFilesStat(files, cb) {
const arr = [];
const x_done = () => files.length === arr.length && cb(arr.filter(s => s !== null));
files.forEach(file => {
fs.stat('some-prefix' + file, (err, stat) => {
if(err) arr.push(null);
else arr.push({/* custom stat obj */});
x_done();
});
});
}
@hsiaosiyuan0 谢谢谢谢