javascript - 如何将可选的回调函数传递给ElectronJS中的ipcRenderer.on()

标签 javascript callback electron ipc ipcrenderer

我正在尝试实现以下目标。在渲染器过程中,我有一个异步函数foo(),它使用一个可选参数bar作为回调函数引用。

从主进程(此处未显示)接收到success并从主进程获取返回对象后,它将对该对象执行某些操作,然后调用作为参数传递的回调函数。

现在,为什么需要它是我有两个函数func1func2,第一个函数将foo连同提供的bar一起调用。第二个没有。

我该如何执行呢?

import { ipcRenderer } from "electron";

// in renderer 

async function foo(/*optional function reference*/ bar) {
    ipcRenderer.send('message', {
        //options
    });

    ipcRenderer.on('success', (event, obj) => {
        //process obj
        bar();  //callback function passed as argument
    })
}

async function func1() {
    foo(bar)
}

async function func2() {
    foo() //no function passed
}


function bar() {
    console.log("hello world")
}

最佳答案

找到了这个link

ipcRenderer.on('success', (event, obj) => {
        //process obj
        if (bar) {
           bar();  //callback function passed as argument
        }
    })

似乎可以解决问题。

关于javascript - 如何将可选的回调函数传递给ElectronJS中的ipcRenderer.on(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60706054/

相关文章:

javascript - NodeJS 事件监听器逻辑

javascript - 从回调访问 'this' 范围变量

javascript - 如何使用node.js/electron访问系统文件?

点击按钮后electronjs总是刷新

javascript - jQuery UI 小部件

javascript - 使用 Javascript 编写 cookie 时,它​​是同步存储还是异步存储?

javascript - 根据点击次数递增变量

c - 为什么回调函数中的值不同 - 不好?

electron - 当应用程序与 Electron 伪造打包在一起时,“wasm decoding failResult”

javascript - Angular ng-class中的css过渡淡入淡出