Javascript 在函数内部调用时,fs.readdir返回未定义
我正在尝试编写一个函数,它采用一个路径并返回该目录中的所有文件 当我这样做时:Javascript 在函数内部调用时,fs.readdir返回未定义,javascript,node.js,fs,Javascript,Node.js,Fs,我正在尝试编写一个函数,它采用一个路径并返回该目录中的所有文件 当我这样做时: function getDirectories(path) { fs.readdir(path, function(err, content) { if (err) { return err; } else { return content; } }); } console.log(getDirectories('./XML/')); function ge
function getDirectories(path) {
fs.readdir(path, function(err, content) {
if (err) {
return err;
} else {
return content;
}
});
}
console.log(getDirectories('./XML/'));
function getDirectories(path) {
fs.readdir(path, function(err, content) {
if (err) {
return err;
} else {
console.log(content);
}
});
}
我在控制台中没有定义
但当我这么做的时候:
function getDirectories(path) {
fs.readdir(path, function(err, content) {
if (err) {
return err;
} else {
return content;
}
});
}
console.log(getDirectories('./XML/'));
function getDirectories(path) {
fs.readdir(path, function(err, content) {
if (err) {
return err;
} else {
console.log(content);
}
});
}
我得到了预期的数组,文件名为字符串
我做错了什么?fs.readdir是异步的。请使用以下命令:
function getDirectories(path, callback) {
fs.readdir(path, function (err, content) {
if (err) return callback(err)
callback(null, content)
})
}
getDirectories('./XML', function (err, content) {
console.log(content)
})
fs.readdir是异步的,请使用以下命令:
function getDirectories(path, callback) {
fs.readdir(path, function (err, content) {
if (err) return callback(err)
callback(null, content)
})
}
getDirectories('./XML', function (err, content) {
console.log(content)
})
我也遇到了同样的问题,我使用fs.readdirSync解决了这个问题
function getDirectories(path) {
fs.readdirSync(path, function(err, content) {
if (err) {
return err;
} else {
return content;
}
});
}
应该可以工作我遇到了同样的问题,我使用fs.readdirSync解决了这个问题
function getDirectories(path) {
fs.readdirSync(path, function(err, content) {
if (err) {
return err;
} else {
return content;
}
});
}
应该工作its,因为readdir是异步的-尝试使用fs.readdirSyncits,因为readdir是异步的-尝试使用fs.ReadDirSyncIt这也返回undefined这也返回undefined