【问题标题】:How to declare a global variable from inside a function using javascript and interacting with Google Apps Script如何使用 javascript 从函数内部声明全局变量并与 Google Apps 脚本交互
【发布时间】:2020-05-09 07:33:07
【问题描述】:

我正在使用 .js 文件触发 .gs 文件(谷歌应用脚​​本)中的一个函数:

google.script.run.withSuccessHandler(function_In_JS_FILE).function_In_GS_FILE();

在JS文件中声明全局变量的函数如下所示:

  var newVariable ;

  function function_In_JS_FILE(return_from_function_In_GS_FILE) {

     window.newVariable = return_from_function_In_GS_FILE ;
     console.log(newVariable) ;  // It show the array that comes from the.gs file. 
  }

  console.log(newVariable) ; // It shows 'Undefined'

假设使用'window'方法,变量应该是全局的,但它不起作用...... 我将非常感谢您的帮助!谢谢!

【问题讨论】:

  • 可能日志太早了。
  • 你能解释更多吗...这是什么意思?我该怎么办?
  • 有时console.log 工作funny。另一个原因可能是:该功能是否异步工作?
  • 对不起,我对什么是异步没有清楚的了解......但我可以说的是,在控制台中,“未定义”(来自函数之外的console.log)显示在之前函数内部的console.log(显示数组)
  • 如果你想用 newVariable 做一些事情,在 function_In_JS_FILE 里面做。如果有任何其他函数依赖于 newVariable,则从 function_In_JS_FILE 内部调用它,以便 newVariable 将具有填充值。

标签: javascript google-apps-script callback scope global-variables


【解决方案1】:

您的代码只是声明了一个全局变量和一个函数。它可以正常工作并按预期打印undefined,因为函数声明不会自行执行。稍后将在从 Google 脚本调用您的函数时分配您的全局变量。在那之前你不应该以任何方式使用你的变量。

【讨论】:

    【解决方案2】:

    我对这个问题的解决方案是在函数内部使用 newVariable。可能有另一种方法,但对我有用。

    【讨论】:

      【解决方案3】:

      只需从 window.newVariable 中取出“窗口”即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-17
        • 2012-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多