ipcRenderer 发送与 sendSync

Posted

技术标签:

【中文标题】ipcRenderer 发送与 sendSync【英文标题】:ipcRenderer send vs sendSync 【发布时间】:2017-07-04 11:25:49 【问题描述】:

我正在开发一个 CRUD Angular/Electron 应用程序,我想使用 electron-store 来保存我的数据。 Angular 不会直接使用 electron-store。相反,它将向 ipcMain 进程发送命令,而主进程将保存/编辑/删除数据。我应该使用 ipcRenderer 中的sendSyncsend 将数据传递给主进程吗?

我读过 send 不推荐,因为它是同步的,但 electron-store 似乎不会异步执行操作。

【问题讨论】:

【参考方案1】:

这取决于您的操作同步。

sendSync 用于需要立即执行函数或需要从该函数返回值时。 它会等待函数的执行,顾名思义就是同步

在其他情况下,我使用send函数,即异步

【讨论】:

非常感谢您的回答!所以,这是一个典型的 CRUD 应用程序。你创建一个项目,你编辑它,你删除它。你会如何处理它? AFAIU,您建议使用 sendSync 进行创建和删除,因为我需要知道新创建的项目或删除是否成功。对吗? 不,如果可以的话,我会使用普通的 send 。我的意思是,我创建项目并将信息发送到 main.js。你需要一个返回值吗?如果你需要它,你必须使用sendSync ...这完全取决于你的工作:)

以上是关于ipcRenderer 发送与 sendSync的主要内容,如果未能解决你的问题,请参考以下文章

如何使用ipcRenderer发送多个参数

07.electron-(渲染进程和主进程)通信

是否可以将 ipcRenderer 收到的消息保存在电子中,以便在 ipcRenderer 范围之外使用?

如何导入ipcRenderer做出反应?

如何在反应中导入 ipcRenderer?

在电子中是在 ipcRenderer 或 ipcMain 中完成的 fs 操作