【发布时间】:2017-06-27 16:45:39
【问题描述】:
我正在 node.js 中创建一个函数,该函数循环遍历目录的文件。它应该将文件名添加到 returnData 变量,然后返回 returnData。但是,它一直没有返回任何内容。我在函数中放了一些 console.log 语句来帮助我调试,但我不知道为什么它不起作用。
function loopMusic (directory) {
var returnData = "";
fs.readdir (directory, function (err, files) {
if (err) {
console.log (err);
}
files.forEach (function (file, index) {
returnData += file;
console.log (returnData);
});
});
console.log (returnData);
return returnData;
}
第一个 console.log 语句能够打印文件,但在 return 之前的语句只打印一个新行。
【问题讨论】:
-
你需要对异步代码和回调如何工作做一些研究。
-
fs.readdir是异步的,因此稍后调用它然后返回方法。 nodejs 中的文件系统库允许同步调用,称为readdirSync,并返回一个字符串数组。
标签: javascript node.js fs