我无法弄清楚为什么这个错误会被抛向我,因为它是随机的:
SyntaxError:对象文字中的意外标记
它是我用来从缓存中获取标签的函数的一部分。如果我从头开始重新加载我的脚本而不做任何不同的事情,它将正常工作。然后由于某种原因,我找不到任何触发器,它将停止在labels = JSON.parse(labels);
行工作。我最好的猜测是缓存有超时,但是当我记录标签变量时,我没有得到任何两者之间的差异(我发现了)。
P.S。我也愿意采用其他方法来轻松拉动标签。
var labels = function() {
var labels = CacheService.getPrivateCache().get('labels');
if (!labels) {
labels = PropertiesService.getDocumentProperties().getProperty('labels');
CacheService.getPrivateCache().put('labels', labels, 660);
}
if (labels) {
labels = JSON.parse(labels);
} else {
// Something went wrong
Browser.msgBox("Something went wrong, please reinstall")
}
return labels;
}
function testcache() {
// var labels = this.labels();
var dropBoxLabels = this.labels().dropBoxes;
var dropBoxLabel = this.labels().dropBox;
var periodLabel = this.labels().period;
var editLabel = this.labels().edit;
var viewLabel = this.labels().view;
var teacherLabel = this.labels().teacher;
Logger.log("");
}
答案 0 :(得分:0)
如果这是触发器的一部分,则很可能以某种方式为变量labels
分配了触发器数据。错误:
SyntaxError:对象文字中的意外令牌
意味着您正在尝试JSON解析javascript对象文字;也就是说,您不需要执行JSON.parse()
。您可以执行console.log(labels);
来了解对象的外观。唯一要注意的是,要使其正常运行,您需要确保您的appscript项目在GCP项目下并且不受appscript仪表板的管理。