JS: электрон использует fs.readSync в процессе рендеринга - PullRequest
0 голосов
/ 02 января 2019

используйте fs.readSync() в процессе рендеринга, а элемент буфера всегда равен 0. Используйте fs.read(), чтобы получить правильный результат.

const electron = window.require('electron');
const { remote } = electron;
const fs = remote.require('fs');

const fd = fs.openSync(localPath, 'r');
const fileStat = fs.fstatSync(fd);

const { size: fileSize } = fileStat;
const dataBuffer = Buffer.alloc(fileSize);
const readSize = 1024;
for(let i = 0; i < fileSize; i += readSize) {
  fs.readSync(fd, dataBuffer, i, Math.min(fileSize - i, readSize), null);
  console.log(dataBuffer);
}

1 Ответ

0 голосов
/ 02 января 2019

Return 0, вероятно, означает, что синхронизированная операция завершилась неудачно с remote.Вы можете захватить исключение в основном потоке.

Кстати: синхронный вызов функции будет очень медленным в nodejs.Вот почему все эти функции названы Sync как суффикс.Я настоятельно рекомендую вам везде написать асинхронный код, если это возможно.

...