Я могу ждать fs.readdir, но я не знаю почему - PullRequest
3 голосов
/ 31 мая 2019

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

Но электронный шаблон использует электрон@2.0.4 и использует узел@8.9.3.

.

Итак, я проверил здесь.

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

Похоже, функция не возвращает обещание.

Но на самом деле я могу ждать функции fs, используя fs-extra в electronic@2.0.4.

Обе разработки и сборки.

Почему это?

результат

console.log(fs.readdir())

Как показано ниже.

enter image description here

Это обещание.

Но я не знаю, почему я могу сделать это по электрону@2.0.4.

Ответы [ 3 ]

2 голосов
/ 31 мая 2019

Вы можете использовать модуль fs в узле v8. возвращаемое значение будет передано в функцию обратного вызова

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

// do your logic with list array

})
2 голосов
/ 31 мая 2019

Если вы используете 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);
})();
0 голосов
/ 31 мая 2019

Извините, я плохо владею английским.

И я начинающий веб-разработчик.

Это всего лишь ожидание.

Я видел package.jsonиз "fs-extra".

И я не могу найти "fs" внутри этого.

Она использует библиотеку с именем "graceful-fs", но эта библиотека не требует "fs""none.

Может быть," fs-extra "не имеет отношения к" fs ".

И у него есть своя логика, которая уже обещана даже в узле ниже, чем verstion10.

Кто-нибудь знает правду?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...