我可以等待fs.readdir,但我不知道为什么

时间:2019-05-31 02:48:39

标签: javascript node.js vue.js vuejs2 electron

https://github.com/SimulatedGREG/electron-vue

我用这个模板制造电子。

我正在使用这个库。

https://www.npmjs.com/package/fs-extra

https://nodejs.org/docs/latest-v11.x/api/fs.html

通过这份文件,我可以这样写。

await fs.readdir

但是电子模板使用的是electronic@2.0.4,使用的是node@8.9。

所以我在这里检查了。

https://nodejs.org/docs/latest-v8.x/api/fs.html

函数似乎没有返回promise。

但是我实际上可以在电子版2.0.4中使用fs-extra等待fs函数。

两者都在开发和构建。

这是为什么?

结果

console.log(fs.readdir())

如下所示。

enter image description here

这是承诺。

但是我不知道为什么我可以在electronic@2.0.4中做到这一点。

3 个答案:

答案 0 :(得分:1)

您可以在节点v8中使用fs模块。返回值将传递给回调函数

const fs = require('fs');
fs.readdir(dir, function(err, list) {

// do your logic with list array

})

答案 1 :(得分:1)

如果您使用的是Node> 8.16(我相信),则可以在promisify模块中使用utils

const { promisify } = require('utils');
const fs = require('fs');
const readdir = promisify(fs.readdir);

(async () => {
  const res = await readdir('./path');
  console.log(res);
});

答案 2 :(得分:-1)

对不起,我的英语不好。

而且,我是一名初学者Web开发人员。

这只是一个期待。

我看到了“ fs-extra”的package.json。

我在里面找不到“ fs”。

它正在使用一个名为“ graceful-fs”的库,但是该库也不需要“ fs”。

也许“ fs-extra”与“ fs”无关。

它有自己的逻辑,即使在低于verstion10的节点中也已被证实。

有人知道真相吗?