【问题标题】:How to Transfer a value from an inline function parameter to a global variable如何将值从内联函数参数传输到全局变量
【发布时间】:2021-02-27 09:32:19
【问题描述】:

我正在使用带有 Ionic 5 的 Electron,我目前在如何将传递的值从渲染器传输到全局变量时遇到问题。

我想要做的是,一旦我关闭电子上的一个浏览器窗口,它会自动通知我的 homepage.ts。它确实有效(如果只在函数内记录结果的控制台日志,比如关闭其他浏览器窗口,它会异步输出 close 返回值),但是对我的 homepage.ts 中的全局变量执行此操作不工作。

我的 homepage.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是我的电子浏览器窗口的变量名。

win.webContents.send('action-prio-external-queue', 'close');

正如我所说,执行 console.log(arg) 会显示正确的输出,但是将其传输到全局变量是行不通的。

你能提供建议吗?如果是这样那就太好了!谢谢

【问题讨论】:

    标签: javascript angular ionic-framework electron


    【解决方案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);
      }
    }
    
    
    

    【讨论】:

    • 谢谢,我能够确认我的代码正在运行。但是,现在我查明了与我的 html 上的异步或其他内容有关的问题,我在页面 html 上使用的布尔变量没有更新,而在 console.log 上打印时布尔变量是正确的。你能建议吗?
    猜你喜欢
    • 2015-10-15
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    相关资源
    最近更新 更多