Javascript 值在两个数组之间传递时变为未定义

Javascript 值在两个数组之间传递时变为未定义,javascript,node.js,Javascript,Node.js,我正在使用nodejs作为我的react应用程序的服务器端,我想用Root_Path值发送目录中的文件名数组。我使用readdir()获取名称并将它们放入文件的列表中 fs.readdir(Root_Path, 'utf8', (err, files) => { if (err) throw err; else files.forEach(element => { List_Of_File.push(element.split(".")[0]);

我正在使用nodejs作为我的react应用程序的服务器端,我想用Root_Path值发送目录中的文件名数组。我使用readdir()获取名称并将它们放入文件的列表中

fs.readdir(Root_Path, 'utf8', (err, files) => {
  if (err) throw err;
  else
    files.forEach(element => {
      List_Of_File.push(element.split(".")[0]);
    });
});


List_Of_File.forEach(element => {
  List_Of_Note.push(element);
});

fs.readdir(Root_Path, 'utf8', (err, files) => {
  if (err) throw err;
  else
    files.forEach(element => {
      List_Of_File.push(element.split(".")[0]);
    });
});


List_Of_File.forEach(element => {
  List_Of_Note.push(element);
});

router.get("/", function(req, res, next) {
  res.send(List_Of_File);
我得到的结果是
[“3”,“4”,“5”]

但是,当我尝试将所有值传递到
List\u Of_Note
时,这些值未定义,当我发送
List\u Of_Note
时,得到的结果是[]

我在文件的
列表中检查值的类型,它是一个字符串。
你能帮我解决这个问题吗

fs.readdir(Root_Path, 'utf8', (err, files) => {
  if (err) throw err;
  else
    files.forEach(element => {
      List_Of_File.push(element.split(".")[0]);
    });
});


List_Of_File.forEach(element => {
  List_Of_Note.push(element);
});
这两组线路不同步。您必须等待调用
readdir
方法的回调。因为您没有等待,所以总是得到空数组。您可以在回调中移动推送逻辑,或者将其转换为基于promise/async/await的


这两组线路不同步。您必须等待调用
readdir
方法的回调。因为您没有等待,所以总是得到空数组。您可以在回调中移动推送逻辑,或将其转换为基于promise/async/await的。

为什么不必要地为
List\u Of_文件
List\u Of_注释
循环。从您的代码来看,两者都是相同的。为什么不必要地为
List\u Of_File
for
List\u Of_Note
循环。从您的代码来看,两者都是相同的。