首页 > 解决方案 > Electron 中奇怪的 IPC 消息传递行为

问题描述

我的 index.js 文件包含这行代码:

ipcRenderer.send("copy-file-to-local", (fpath, fname))

我的 main.js 文件包含这些代码行:

ipcMain.on("copy-file-to-local", (_event, fpath, fname) => {
    // do things!
    console.log(fpath)
})

输出事件总是正常工作,输出fpath返回fname和输出fname返回未定义。无论我是否传入eventindex.js,都会观察到这种行为。在过去的大约 2 个小时里,我基本上只是困惑地盯着我的控制台。无论我如何改变论点,似乎总是有 2 个论点的限制。是什么黑魔法驱动了这个问题?感谢您的任何帮助,您可以提供。

标签: javascriptnode.jselectron

解决方案


不要在参数周围加上额外的括号,这会将它们变成一个计算结果为一个值的表达式。


function f(arg1, arg2){
    console.log(arg1, arg2);
}

f((a, b)) //B, undefined
f(a, b)    //A, B

推荐阅读