电子中的IPC发送/开启和调用/处理有什么区别?

Fus*_*ara 10 node.js electron

https://www.electronjs.org/docs/api/ipc-renderer https://www.electronjs.org/docs/api/ipc-main

我看到一篇文章说 invoke/handle 是异步的,但是可以使用旧的 send/on。很容易返回返回值。从 Main 发送到渲染器时,您不需要指定 webcontents。好处是可以理解的

https://medium.com/@nornagon/electrons-remote-module-thinked-harmful-70d69500f31 我不认为本文中写的远程模块与发送/上有关

小智 13

invoke是新的 api,用于在尝试调用某些 fn 以将值返回给发送者时帮助围绕现有send/on对进行人体工程学设计。send如果你喜欢使用它,你可以通过它来实现同样的事情,没有功能差异。

  • 同意,功能上我没有看到差异;爱“承诺”;我喜欢“handle/invoke”使用 Promise,这样你就可以“async/await”。此外,如果您尝试调用不存在的“句柄”,它会引发错误。我更喜欢使用“on/send”的一种场景是设置超时。 (3认同)
  • 使用场景有一个主要区别:使用“.send”和“.on”,只要主进程正在运行,渲染器就可以从多次调用的 ipcMain 通道接收数据。.send+.on 的用例是应用程序中某些部分随时间的异步更新,例如倒计时、数据更新、进度条等 .invoke 的用例是从电子设置中获取值,因为`enableRemoteModule` 将很快被弃用。 (3认同)