stackoverflowで見つかったコードスニペットに基づいて、ディレクトリ内のすべてのファイルを読み込み、次に処理を進めたいと思います。 私は約束を追加しましたが、これはどういうわけか動作しません。なぜ約束が最初に解決するのですか?
私のディレクトリは、2つのファイルが含まれており、コンソールログ出力は次のとおりです。
約束はreadFiles
function readFiles(dirname, onFileContent, onError) {
return new Promise((resolve, reject) => {
fs.readdir(dirname, function(err, filenames) {
filenames.forEach(function(filename) {
console.log('inside filenames');
fs.readFile(dirname + filename, 'utf-8', function(err, content) {
onFileContent(filename, content);
});
});
});
});
}
var data = [];
readFiles('datadir/', function(filename, content) {
console.log('inside readFiles');
data.push(filename);
}).then(
console.log('promise resolved');
//proceed handling the data-array
);
あなたのコードであっても、セミコロンで実行されないだろうが、あなたは 'その後、(機能(){'、あなただけの 'then'を持っている必要がありますように見えますがありますと仮定。 –
私はあなたの約束のポイントを見ていません。あなたはそれを決して解決せず、コールバックを使ってファイルの内容を取得しています。 – Jamiec
@Jamiec –