我是 Node.js 的新手。我在这里所做的只是获取文件夹中的文件列表...... Node.js 中的所有内容似乎都是异步的,但我的函数我希望它以同步的方式。所以,我做如下。
function getFiles() {
var file = [];
var walker = walk.walk('./files');
walker.on('file', function (root, stat, next) {
file.push(root + '/' + stat.name);
next();
})
walker.on('end', function () {
console.log(JSON.stringify(file));
})
return file;}
它按我的预期工作:
["./files/1.mp3","./files/2.mp3","./files/3.mp3","./files/4.mp3","./files/5.mp3","./files/6.mp3","./files/7.mp3","./files/8.mp3"]
但是当我将该函数分配给变量时
var list = getFiles();
response.writeHead(200, {'Content-type':'application/json'});
response.end(JSON.stringify(list));
它总是什么也没返回,我认为getFiles()
在另一个线程中运行所以无法接收数据值。感谢您的阅读。