我正在使用Electron和Angular 7开发桌面应用程序。
我需要压缩文件夹的一部分,这可能会增加很多重量。 我正在使用ipcRenderer从角向电子发送信号以开始压缩。 这是ipcMain的一部分:
Result<T, Error>
问题在于,当文件夹很大时,任务会占用很多时间并阻塞呈现的进程。
我已经尝试使用'electron-remote'及其方法 requireTaskPool ,如下所示:
const { app, BrowserWindow, ipcMain } = require("electron");
const zip = require('file-zip');
...
ipcMain.on('zip', (event, args) => {
const { from, to } = args;
zip.zipFolder(from, to, (error) => {
event.sender.send('zip-response', error);
});
});
和:
const zip = require('file-zip');
function zipDir(from, to) {
zip.zipFolder(from, to, (error) => {
return error;
});
}
module.exports = zipDir;
但是它不起作用,“ zip”总是立即解析,而不执行zip函数,可能是因为zip.zipFolder使用了回调。
有什么主意吗?