【问题标题】:google side bar - are js server side global variables shared between side bar callesgoogle side bar - 是侧边栏调用之间共享的 js 服务器端全局变量
【发布时间】:2021-09-05 01:41:17
【问题描述】:

考虑侧边栏简单的服务器端脚本。

const publicArr = [];

function doWait2(ms){
   var start = new Date().getTime();
   var end = start;
                 
    while(end < start + ms) {
       end = new Date().getTime();
   }
}

function getfirstCall(){
    publicArr.push("Item1");
    doWait2(10000);
    return publicArr;
}

function getsecondCall(){
    publicArr.push("Item2");
    return publicArr;
}

当一个接一个地调用getfirstCallgetsecondCall时,每个函数都返回一个单项数组(分别为Item1 / Item2)。 getfirstCallpublicArr 所做的更改不会在客户端执行getsecondCall 时反映出来。

请注意,getfirstCall 在返回前等待 10 秒,从而允许服务器同时处理 getsecondCall。不确定它是否重要。

这是保证吗? 每个客户端调用都有自己的公共变量实例?

猜猜这对于 Web 开发来说是非常基础的,而不仅仅是侧边栏

【问题讨论】:

    标签: javascript google-apps-script web-development-server


    【解决方案1】:

    在 Apps 脚本中,全局变量在脚本执行中不是唯一的,您应该考虑使用 PropertiesService 将您的 publicArr 存储为脚本属性,所有用户都可以检索。如果您担心并发执行,也许LockService

    请参阅以下答案以获取指针:

    How to define global variable in Google Apps Script

    https://stackoverflow.com/a/63601016/4243927

    【讨论】:

    • 我以前读过那些。你能解释一下为什么我每次打电话都会得到单项数组吗?
    • 是的,因为您的数组在任何函数之外,并且“全局”变量在 Apps Script 中不会像 JS 那样处理。
    • 和“全局”变量在 Apps Script 中不被视为 JS。这是什么意思?
    • 你好@OJNSim! Apps Script 与 JavaScript 有一些不同。 Here你可以看到更深入的分析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    相关资源
    最近更新 更多