ディレクトリに特定のファイルの配列を作成しようとしています。いくつかのテストケースを経て、それが所定の基準に適合していることを確認します。`fs.readdir`を` .then`と連鎖して配列を返します
私はfs.readdir
メソッドを使用していますが、promise
という意味ではありません。つまり、push
からarray
までは返されません。
私の考えは、実際に出力したいファイルに配列(arr
)を入力し、その配列で何かを行うことでした。しかし、readdir
は非同期であり、.then()
をチェーン化できないので、私の計画は破棄されます。
私はreaddirSync
でも同じことを試してみました。
const Promise = require('bluebird');
const fs = Promise.promisifyAll(require('fs'));
var arr = [];
fs.readdirAsync(folder).then(files => {
files.forEach(file => {
fs.stat(folder + '/' + file, (err, stats) => {
if(!stats.isDirectory()) {
arr.push(file);
return;
}
});
});
})
.then(() => {
console.log(arr);
});
stat
のstatSync
を使用するために必要な? ---質問を編集して、あなたの努力の[mcve]を含めることができますか? – evolutionxbox_ "私もreaddirSyncで同じことを無駄にしようとしました" _。その関数は、ファイル名の配列を_return_してくれます。あなたが探しているのとまったく同じように見えますか? – robertklep
私がしようとしていることの例を追加しました。 '[]]を返します。 – OmisNomis