Как передать необязательную функцию обратного вызова в ipcRenderer.on () в ElectronJS - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь реализовать что-то следующим образом. В процессе рендеринга у меня есть asyn c функция foo(), которая принимает необязательный аргумент bar в качестве ссылки на функцию обратного вызова.

После получения success от основного процесса (здесь не показано) и получив возвращаемый объект из основного процесса, он что-то делает с объектом, а затем вызывает функцию обратного вызова, которую я передал в качестве аргумента.

Теперь, почему это необходимо, я имею две функции func1 и func2, первая вызывает 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")
}

1 Ответ

0 голосов
/ 16 марта 2020

Нашел ссылку

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

Кажется, что добились цели.

...