google side bar - js 服务器端全局变量在 side bar 调用之间共享

google side bar - are js server side global variables shared between side bar calles

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

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时,每个函数returns一个单项数组(分别为Item1 / Item2)。 getfirstCallpublicArr 所做的更改不会在客户端执行 getsecondCall.

时反映出来

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

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

我猜这是 web 开发的基础,而不仅仅是边栏

在 Apps 脚本中,全局变量在脚本执行中不是唯一的,如果您担心并发执行,您应该考虑使用 PropertiesService to store your publicArr as a script property, retrievable by all users. And perhaps LockService

请参阅这些答案以获取指导:

How to define global variable in Google Apps Script