首页 > 解决方案 > google side bar - 是侧边栏调用之间共享的 js 服务器端全局变量

问题描述

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

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)。客户端执行时不会反映getfirstCallto所做的更改。publicArrgetsecondCall

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

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

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

标签: javascriptgoogle-apps-scriptweb-development-server

解决方案


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

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

如何在 Google Apps 脚本中定义全局变量

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


推荐阅读