我是一名Java开发人员,同时学习JavaScript和Google Apps脚本.作为新手,我学习了JavaScript的语法,而不是它的实际工作方式,我很乐意在Google Apps脚本中删除并按顺序和同步编写代码,就像Java一样.我的所有代码都类似于:( 大大简化以显示我的意思)
function doStuff() {
var url = 'https://myCompany/api/query?term<term&search';
var json = getJsonFromAPI(url);
Logger.log(json);
}
function getJsonFromAPI(url) {
var response = UrlFetchApp.fetch(url);
var json = JSON.parse(response);
return json;
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理!它工作得很好!如果我不继续研究JavaScript,我会说它就像发条一样.但JavaScript不是一个发条,它是光荣的异步,根据我的理解,这根本不起作用,它会"编译",但记录json变量应该记录未定义,但它记录JSON没有问题.
注意:
代码在Google Sheet的脚本编辑器中编写和执行.
为什么是这样?
简单问题:任何人都可以指向某个资源,或者知道Google Apps脚本支持哪种Javascript标准?
我自然认为ES5是完全支持的,但ES6(甚至7)呢?
注意:我的意思是内置代码编辑器,如果打开电子表格(例如),则会出现,然后单击 Tools > Script editor...
我在开发者页面上找不到完整的语法规范.我真的想知道是否有一个扩展的循环...
https://developers.google.com/apps-script/
我看到了默认服务,但这并没有定义我们可以使用的控制流语法.它恰恰是JavaScript的某个版本吗?
Google Apps脚本似乎无法识别该功能Object.assign()。尝试使用它时出现错误:
TypeError: Cannot find function assign in object function Object() { [native code for Object.Object, arity=1] }
Run Code Online (Sandbox Code Playgroud)
我测试功能的代码是直接从MDN复制的示例:
function myFunction() {
const object1 = {
a: 1,
b: 2,
c: 3
};
const object2 = Object.assign({c: 4, d: 5}, object1); //error is thrown here
console.log(object2.c, object2.d);
// expected output: 3 5
}
Run Code Online (Sandbox Code Playgroud)
我将上面的代码直接复制粘贴到Chrome开发者控制台中,该控制台运行良好并提供了预期的输出。
我在网上找不到任何内容说应用程序脚本不支持此特定功能或类似功能。发生什么了?我怎样才能解决这个问题?