文件读取回调后打印

时间:2015-11-30 12:23:56

标签: javascript node.js

在读取完所有文件后,将最后一个console.log设为---- print。

fs.readdir(inputFolder, function(err, list) {
    list.forEach(function(file){
        console.log('# ' + file + ' --> ' + folder);
    });    
});

console.log('--------------------------------------------------------');

2 个答案:

答案 0 :(得分:0)

  

forEach执行同步操作,fs.readdir是异步的,因此console.log('--------------------------------------------------------');将在fs.readdir之后立即执行。

要在list的所有迭代后打印它,请在list.forEach之后将日志语句放在fs.readdir之后

答案 1 :(得分:0)

fs.readdir(inputFolder, function(err, list) {
    list.forEach(function(file){
        console.log('# ' + file + ' --> ' + folder);
    });
    console.log('--------------------------------------------------------      ');   
});

fs.readdir是异步的。这意味着,即使readdir未完成,该调用后的代码仍将继续运行 您可以使用readdirSync同步运行它,但如果还有其他解决方案,这将是一个糟糕的选择。你总是希望在js中使用异步,因为这是使js快速运行的原因,因为没有什么能阻止代码的执行 在每个文件打印完成后将行放在readdir回调中,将解决您的问题。