将范围作为全局变量返回 Google 表格脚本

我正在尝试创建一个已解析的 json 数据的全局变量。


我想在其他函数中使用全局变量


json 解析效果很好,但我在创建全局变量时运气不好


async function GETELEMENTS(url) {

  var response = await UrlFetchApp.fetch(url);

  var responseText = await response.getContentText();

  var responseJson = JSON.parse(responseText);

  var elementKeys = Object.keys(responseJson.elements[0]);

  

  var data = responseJson.elements.map(e => elementKeys.map(f => {

      return e[f] instanceof Array ? e[f].join('|') : e[f];

  }));

  data.unshift(elementKeys);

  

  if(data.length==0)

   return;

 

  }

  

  var cache = CacheService.getScriptCache();

  cache.put('A', data);

  var cache = CacheService.getPublicCache();


  return data;

}



返回数据的cache.get('A')本质在 哪里SpreadsheetApp.getActive().getDataRange().getDisplayValues();


然后在不同的功能中,我想使用


myotherfunction(cache.get('A'));


拉丁的传说
浏览 105回答 1
1回答

犯罪嫌疑人X

你可以在每个函数data 之外声明,它会自动成为一个全局变量。最小可重现示例:var data;function GETELEMENTS() {  data = 'I was defined!';}function myotherfunction(){  Logger.log(data); // -> output: null  GETELEMENTS();  Logger.log(data); // -> output: I was defined!}如果执行 myotherfunction,则在该行之后GETELEMENTS()将具有在 中定义的data值。I was defined!GETELEMENTS()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript