【发布时间】:2014-01-07 00:11:41
【问题描述】:
在我的 Google Apps 脚本应用中,我看到以下错误:
脚本完成,但返回值不是支持的返回类型
如何找出我返回的值的类型?我试过了:
typeof(obj)
但我得到的只是它是一个对象。
此错误仅在缓存为空且从电子表格加载数据时发生。例如。用户点击页面,得到错误,刷新现在加载页面,因为缓存在第一次点击时被填充。现在用户可以继续使用该页面,直到缓存失效,然后下一次命中将再次导致此错误。
在我阅读并关注this document 后,今天开始出现此错误。以前我的脚本在模板中加载数据,现在我已经重构为异步加载:
google.script.run
我查看了我的页面中发生的情况,了解为什么它在从缓存中读取时会起作用,我唯一能看到的不同之处是缓存中的数据是从 JSON 字符串中解析的。当缓存为空时,我必须对对象进行字符串化以便保存到缓存中,因此我没有返回我的原始对象,而是解析我刚刚创建的字符串并返回它,现在没有错误了。
我不确定错误来自哪里,是 Apps Script 还是 Caja?
解析 JSON 字符串以返回也不是理想的解决方案,这个字符串化/解析对我的原始对象做了什么来消除错误?
当我使用内置调试器检查对象(在字符串化/解析过程之前和之后)时,值和类型似乎都与我所能检查的能力相同。
这是 Apps 脚本中的错误吗?难道我做错了什么?消除此错误的最佳解决方案是什么?
【问题讨论】:
标签: javascript google-apps-script google-sheets typeerror