当前位置: 首页 > 知识库问答 >
问题:

NodeJS从recursive-readdir填充数组

锺伟志
2023-03-14

我对许诺是个新手,我知道问题是我要在许诺解决之前读数组。如果我只是console.log它们打印的文件很好,只需要它们在一个数组中,这样我就可以遍历它们了。

有人能把我推到正确的方向吗?我正在使用recursive-readdir节点模块获取dir1和dir2目录中所有文件的列表,并将它们添加到数组(var sitemap)中。

var recursive = require("recursive-readdir");

var directories = ['dir1', 'dir2'];
var sitemap = [];
for(var i = 0; i < directories.length; i++) {
    recursive(directories[i], ["*.pdf", "*.json", "*.xml", "*.jpg", "*.gif", "*.png", "*.css", "*.js", "*.flv", "*.swf", "*.ttf", "*.pptx", "*.doc", "*.docx"], function (err, files) {
        for(var x = 0; x < files.length; x++) {
            let url = 'example.com/' + files[x];
            addURL(url);
        }
    });
}

function addURL(url) {
    sitemap.push(url);
}

// Returns empty array
console.log(sitemap);

共有1个答案

林弘壮
2023-03-14

下面的代码可以工作,添加了console.log(站点地图)在Promise中,请检查

null

const recursive = require("recursive-readdir");

const directories = ['dir1', 'dir2'];
const sitemap = [];


const extns = ["*.pdf", "*.json", "*.xml", "*.jpg", "*.gif", "*.png", "*.css", "*.js", "*.flv", "*.swf", "*.ttf", "*.pptx", "*.doc", "*.docx"];


const allRequests = directories.map((item) => {
  return recursive(item, extns);
});

Promise.all(allRequests).then((files) => {
  for (let x = 0; x < files.length; x++) {
    let url = 'example.com/' + files[x];
    addURL(url);
  }
  console.log(sitemap);
});

function addURL(url) {
  sitemap.push(url);
}


//console.log(sitemap);
 类似资料:
  • Arrays 类提供了一个 fill() 方法,可以在指定位置进行数值填充。fill() 方法虽然可以填充数组,但是它的功能有限制, 只能使用同一个数值进行填充。语法如下: 其中,array 表示数组,value 表示填充的值。 例 1 声明一个 int 类型的 number 数组,然后通过 for 语句进行遍历,在该语句中调用 Arrays 类的 fill() 方法来填充数组,并输出数组中元素的

  • series(string $value,[ string $categories]) string $value $config = ['path' => './tests']; ​ $fileObject = new \Vtiful\Kernel\Excel($config); ​ $fileObject = $fileObject->fileName('tutorial.xlsx'); $

  • factory 辅助函数 必须 使用 factory 方法来做数据填充,因为是框架提倡的,并且可以同时为测试代码服务。 运行效率 开发数据填充时,必须 特别注意 php artisan db:seed 的运行效率,否则随着项目的代码量越来越大,db:seed 的运行时间会变得越来越长,有些项目多达几分钟甚至几十分钟。 原则是: Keep it lighting speed. 只有当 db:seed

  • 我看到了许多类似问题的答案,人们说为了获得组合框中加载的项目的值,需要使用 但这种东西不起作用…… 这是我所拥有的…… 我从表中选择了Code1和Code2,我希望能够显示Code1,当被选中时,我希望能有Code2的值,但对于displayMember和ValueMember,我看不到任何结果。 编辑:这是我的所有代码: 暗淡的行=dt. Load(com. Ex 错误提示:表达式不产生值 编辑

  • 所以我用Java处理这些数据: 我需要将其转换为JSON: 但是我不知道怎么做。 目前我认为这是最好的方法: 但我不确定如何使用Hashmap实现这一点。我知道是这样的: 但确切的语法,以及如何将其与其他数据一起添加,我无法计算。有什么想法吗?