Как вы определяете, является ли сообщение от send или sendSync в основном процессе?

Спасибо @ Винсент Роберт , я закончил использовать ваш основной пример, хотя на самом деле это newBegin + oldEnd - oldBegin. Вот упрощенное конечное решение:

    // don't update end date if there's already an end date but not an old start date
    if (!oldEnd || oldBegin) {
        var selectedDateSpan = 1800000; // 30 minutes
        if (oldEnd) {
            selectedDateSpan = oldEnd - oldBegin;
        }

       newEnd = new Date(newBegin.getTime() + selectedDateSpan));
    }

1
задан 我真的好暴躁 20 March 2019 в 03:08
поделиться

1 ответ

Вы можете просто ввести значение в send, чтобы сделать различие:

ipcRenderer.send("eventName", myArg, true);
ipcRenderer.sendSync("eventName", myArg, false);

А затем в вашем основном коде:

ipcMain.on('eventName', (event, arg, isAsync) => {
    if (isAsync) {
        event.sender.send('AsyncEventName', arg)
    } else {
        event.returnValue = arg
    }
});

Другой вариант это использовать два разных канала:

ipcRenderer.send("eventName", myArg);
ipcRenderer.sendSync("eventNameSync", myArg);

А затем в вашем основном коде:

ipcMain.on('eventName', (event, arg) => {
    event.sender.send('AsyncEventName', arg)
});
ipcMain.on('eventNameSync', (event, arg) => {
    event.returnValue = arg
});

Лично я предпочитаю второй.

0
ответ дан pushkin 20 March 2019 в 03:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: