ipcMain.handle 是 Electron 主进程中的一个方法,用于处理从渲染进程发送过来的 IPC 请求,并返回一个 Promise。渲染进程可以使用 ipcRenderer.invoke 方法发送 IPC 请求到主进程,并等待主进程处理完成后返回结果。

在主进程中 (main.ts):

import { app, BrowserWindow, ipcMain } from 'electron';

app.on('ready', () => {
  const mainWindow = new BrowserWindow();

  ipcMain.handle('sumNumbers', async (event, num1: number, num2: number) => {
    return num1 + num2;
  });
});

在渲染进程中 (renderer.ts):

import { ipcRenderer } from 'electron';

async function sumNumbers(num1: number, num2: number) {
  try {
    const result = await ipcRenderer.invoke('sumNumbers', num1, num2);
    console.log('Result:', result); // 输出 8
  } catch (error) {
    console.error('Error:', error);
  }
}
sumNumbers(5, 3);

在上面的示例中,我们将主进程和渲染进程的代码分别放在了 main.ts 和 renderer.ts 文件中,并使用了 TypeScript 的类型定义。在渲染进程中,我们使用了 async/await 来等待 ipcRenderer.invoke 的结果,并捕获可能的错误。

Logo

一站式 AI 云服务平台

更多推荐