私は 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()
返されませんでした。別のスレッドで実行されているため、データの値を受け取ることができないと思います。お読みいただきありがとうございます。