#javascript #angular #ionic-framework #electron
#javascript #angular #ionic-framework #electron
Вопрос:
Я использую Electron с Ionic 5, в настоящее время у меня проблема с тем, как перенести переданное значение из средства визуализации в глобальную переменную.
Что я хочу сделать, так это то, что, как только я закрою одно из окон моего браузера в electron, оно автоматически сообщит об этом моему homepage.ts. Это действительно работает (если только делать консольный журнал результата внутри функции, например, закрыв другое окно браузера, он асинхронно выводит возвращаемое значение close), однако выполнение этого для глобальной переменной в my homepage.ts не работает.
У меня есть эта функция с моей домашней страницы.ts
async initialize() {
if (this.electron.isElectronApp) {
var x;
this.electron.ipcRenderer.on("action-prio-external-queue", (err,arg) => {
if(arg == 'close') {
x = false;
console.log(arg);
}
})
console.log(await x);
}
}
electron.ts
win — это имя переменной моего окна браузера electron.
win.webContents.send('action-prio-external-queue', 'close');
как я уже говорил, выполнение console.log(arg) показывает корректный вывод, однако передача его в глобальную переменную не работает.
Можете ли вы дать совет? если это так, это было бы здорово! Спасибо
Ответ №1:
var arg;
async initialize() {
if (this.electron.isElectronApp) {
var x;
this.electron.ipcRenderer.on("action-prio-external-queue", (err,a) => {
if(arg == 'close') {
x = false;
arg = a;
}
})
console.log(await x);
}
}
Комментарии:
1. Спасибо, я смог подтвердить, что мой код работает. Однако теперь я точно определяю проблему, связанную с асинхронностью или чем-то в моем html, логическая переменная, которую я использовал на своей странице html, не обновляется, в то время как логическая переменная верна при печати в console.log. можете ли вы посоветовать?