gpt4 book ai didi

javascript - 如何让我的数据从 IpcMain 返回

转载 作者:行者123 更新时间:2023-12-02 20:50:53 28 4
gpt4 key购买 nike

我正在 react 中创建一个拖放并使用 Electron 发送和接收我的文件数据。我在 console.log 中收到 senderId 和 sender。我怎样才能让数据出现?我错过了什么?

Dropzone.js 文件

const [fileNames, setFileNames] = useState([]);

const handleDrop = useCallback(acceptedFiles => {
setFileNames(_.map(acceptedFiles, ({ name, type, path, size, lastModified,
lastModifiedDate }) => {
return { name, type, path, size, lastModified, lastModifiedDate };
}))
let formData = new FormData();
formData.append('uploadedFiles', fileNames);
}, [fileNames]);


useEffect(() => {
ipcRenderer.send(FETCH_AUDIO_FILES, fileNames);
}, [fileNames]);

useEffect(() => {
const handler = (filesWithData) => {
_.map(filesWithData, (event, data) => {
console.log(data);
})
};
ipcRenderer.on(METADATA_COMPLETED, handler);
return () => ipcRenderer.removeListener(METADATA_COMPLETED, handler);
});

Index.js 文件

 ipcMain.on(FETCH_AUDIO_FILES, (event, files) => {
const promises = _.map(files, (file) => {
return new Promise((resolve, reject) => {
NodeID3.read(file.path, (err, tags) => {
resolve({
...files,
...tags
})
})
})
});

Promise.all(promises).then(results => {
event.sender.send(METADATA_COMPLETED, results);
[![enter image description here][1]][1]});
});

最佳答案

您无法通过 IPC channel 发送特殊对象,例如文件:

Arguments will be serialized with the Structured Clone Algorithm, just like postMessage, so prototype chains will not be included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw an exception.
NOTE: Sending non-standard JavaScript types such as DOM objects or special Electron objects is deprecated, and will begin throwing an exception starting with Electron 9.

--https://www.electronjs.org/docs/api/web-contents#contentssendchannel-args

您可以将文件读取为 Base64 字符串、缓冲区或渲染器进程中的任何内容,然后将其发送到主进程,或者如果您要选择文件,也许可以在主进程中完成所有操作,例如https://www.electronjs.org/docs/api/dialog#dialogshowopendialogbrowserwindow-options

关于javascript - 如何让我的数据从 IpcMain 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61606732/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com