相关疑难解决方法(0)

用`.then`链接`fs.readdir`来返回一个数组

我试图在目录中创建一个特定文件的数组; 这将通过一些测试用例来确保它符合给定的标准.

我使用的fs.readdir方法,但它并没有回报promise的意思我不能pusharray.

我的想法是arr使用我实际想要输出的文件填充array(),然后对该数组执行某些操作.但由于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);
});
Run Code Online (Sandbox Code Playgroud)

javascript fs node.js

4
推荐指数
3
解决办法
9828
查看次数

标签 统计

fs ×1

javascript ×1

node.js ×1