Javascript 值在两个数组之间传递时变为未定义
我正在使用nodejs作为我的react应用程序的服务器端,我想用Root_Path值发送目录中的文件名数组。我使用readdir()获取名称并将它们放入文件的列表中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]);
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
forList\u Of_Note
循环。从您的代码来看,两者都是相同的。