javascript - fs.readdir 在函数内部调用时返回 undefined

标签 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 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)
})

关于javascript - fs.readdir 在函数内部调用时返回 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40629186/

相关文章:

javascript - 在 slidedown() 之后设置元素的高度

javascript - 在javascript中将线性字符串替换操作更改为数组

javascript - 如何模拟 `createReadStream` 上的 EventEmitter?

javascript - 如何将现有回调 API 转换为 Promise?

node.js - 同步检查Node.js中是否存在文件/目录

javascript - HTML5 Draggable setDragImage 不适用于 Chrome 上的 Canvas

python - node-pre-gyp install--fallback-to-build--library=static_library

javascript - 从 Promise 结果中导出 Node 模块

java - 将图像从 Java TCP 客户端发送到 Node.js TCP 服务器

javascript - 在 Node.js 中重命名文件而不使用 fs