当前位置: 首页 > 知识库问答 >
问题:

javascript - 请问如何拆分`export const registerIpcMainHandlers = () => {...}`里面的方法呢?

吉俊德
2023-08-10

我目前有一个文件(mainHandler.ts),里面有如下内容:

export const registerIpcMainHandlers = () => {  ipcMain.on('message1'  , (event, data) => {    console.log(`Message received from ${event.sender.id}: ${data}`);    event.sender.send('response', 'Response message from main process.');  });  ipcMain.on('message2'  , (event, data) => {    console.log(`Message received from ${event.sender.id}: ${data}`);    event.sender.send('response', 'Response message from main process.');  });  ...}

现在我想要拆分里面的一些监听方法到其他文件去(例如:subHandlers/handler1.ts):

mainHandler.tssubHandlers/  handler1.ts

应该怎么做呢?应该如何把subHandlers/handler1.ts中的on方法们引入到:registerIpcMainHandlers里面去呢?

共有2个答案

沈博涉
2023-08-10

楼上的方法已经很明确了,不过题主的描述貌似有一些分歧:

简单概述下:
想要拆分A.ts里面的方法到XX/B.ts中,
题主问的是:

应该如何把XX/B.ts中的on方法们引入到:A.ts里面去呢?

猜测你想问的应该是

将A.ts文件中的方法拆分,在XX/B.ts中引入

如果不想改动 registerIpcMainHandlers方法,又想拆分,又想复用,可以这样

// mainHandler.tsimport { ipcMain } from 'electron';export const registerIpcMainHandlers = () => {  ipcMain.on('message1'  , (event, data) => {    console.log(`Message received from ${event.sender.id}: ${data}`);    event.sender.send('response', 'Response message from main process.');  });  ipcMain.on('message2'  , (event, data) => {    console.log(`Message received from ${event.sender.id}: ${data}`);    event.sender.send('response', 'Response message from main process.');  });  ...}// 拆分的方法export const handleMessage = (msgName) => {  ipcMain.on(msgName, (event, data) => {    console.log(`Message received from ${event.sender.id}: ${data}`);    event.sender.send('response', 'Response message from main process.');  });};

引入这里就不再赘述了~【PS:也有可能是我理解的有偏差】

奚光霁
2023-08-10
// subHandlers/handler1.tsimport { ipcMain } from 'electron';export const handleMessage1 = () => {  ipcMain.on('message1', (event, data) => {    console.log(`Message received from ${event.sender.id}: ${data}`);    event.sender.send('response', 'Response message from main process.');  });};export const handleMessage2 = () => {  ipcMain.on('message2', (event, data) => {    console.log(`Message received from ${event.sender.id}: ${data}`);    event.sender.send('response', 'Response message from main process.');  });};
// mainHandler.tsimport { handleMessage1, handleMessage2 } from './subHandlers/handler1';export const registerIpcMainHandlers = () => {  handleMessage1();  handleMessage2();  // ...};
 类似资料:
  • 在mounted里面请求接口,如下:,两个接口都请求了,但是第一个接口返回的data为null,如果此时刷新一下页面,那么第一个接口返回的data就有值,这是为什么,怎么解决这个问题?第一个接口代码: 第二个接口代码: 这是从上一个页面进入这个页面的时候打印的 这是页面刷新后打印的

  • 脑子瓦特了,想不出好办法…… bus.js: method.js 就这样的结构,如果把dataBus放在method里倒是能运行,但总感觉很怪,这个应该怎么拆分呢?

  • 我已经通过字符串的拆分方法留档,但结果并不像预期的那样。当我们将限制参数设置为负值的字符串拆分时,它总是附加一个空值。为何要这样做呢?考虑一些案例 我希望这两张照片都是3。 现在,由于没有找到匹配项,通常的split with limit方法应该打印0,但它创建了一个带有空字符串的数组。 现在我有了一个匹配项,无限制参数的split方法可以很好地工作。它是我预期的输出,但为什么它不在本例中创建一个

  • 这个blob流不是调用后端接口返回的, 所以没有url。是纯靠前端生成的一个blob流的word文档。 想问一下该如何下载到手机并打开?H5环境和小程序。 如果创建a标签下载, 跑到小程序里就不生效了。

  • 使用Jaspersoft studio 6.2。 带有详细和摘要带的主要报告。主报告的摘要带中的子报告。主报表本身(没有子报表时)将分成两个页面,因此我选中了,主报表(没有子报表时)将显示为单页。 默认情况下,子报表本身分为9页,当我选中时,它显示为一个单独的页。好吧。当我用上面的所有设置将子报表放在主报表中时,它就会显示为一个单独的页面。我如何在一页中制作主报告,在另一页中制作子报告(所以总共两

  • 问题内容: 我需要分解一个始终如下所示的字符串: 东西-something_else。 我需要在另一个输入字段中输入“ something_else”。当前,此字符串示例正被即时添加到HTML表行中,如下所示: 我认为“拆分”是可行的方法,但是几乎找不到文档。 问题答案: 可以在MDN找到文档。请注意,是不是 一个jQuery方法,但本地字符串的方法。 如果在字符串上使用,则返回带有子字符串的数组