2016-07-20 8 views
0

私はJavascriptを学びます。私は約束の助けが必要です。
私は、コードを持っている:以下のケースでファイルを処理しているときにNodeJsで約束を使用する方法

'use strict'; 

const fs = require('mz/fs'); 

fs.readdir(__dirname) 
    .then(function(filesNames) { 
    return Promise.all(
     filesNames.map(fileName => fs.stat(fileName)) 
    ) 
    }) /*** after this, the file names are lost ***/ 
    .then(function(stats) { 
    return stats.filter(stat => stat.isFile()) 
    }) 
    .then(function(stats) { 
    return stats.reduce((sum, stat) => sum + stat.size, 0) 
    }) 
    .then(console.log); 

それは、フォルダ内のすべてのファイルの合計の長さを計算します。質問は、私もファイルの内容を読む必要がある場合ですか?しかし、最初に「.then()」ファイル名が失われた後...要するに

私が必要:

  1. はリストをチェックして、フォルダを捨てるフォルダ
  2. 内のファイルのリストを読みますそれ
  3. からの名前は、あなたがこれを行う方法を私に説明してもらえリストに

を各ファイルを読みますか? ありがとう!

答えて

0

また、ファイル名を返すようにstatを返す機能のジョブである:

filesNames.map(fileName => { 
    return fs.stat(fileName).then(stat => { 
     return {name: fileName, stat: stat}; 
    }); 
}); 
+0

それは働きます!ありがとう) –

関連する問題