我遇到了CacheService.getScriptCache()。putAll()的问题。
数组是~7k小字符串(~50char),如果我执行以下代码,它很慢但是它有效。
function updateCache(sheet, range, cache){
var contents = sheet.getRange(range).getValues();
var db = {};
for (var i = 0; i < contents.length; i++) {
var tmp = contents[i][0]==""? "empty":contents[i][0];
db[tmp] = i;
cache.put(tmp, i, 86400);
}
//cache.putAll(db, 86400);
}
如果我评论put方法并启用putAll行,则会出现以下错误:
Spiacenti。 Sièverificatoun errore del server。 Attendi e riprova。
问题非常普遍,我无法理解为什么它不起作用。
由于
答案 0 :(得分:3)
我之前遇到过同样的情况。那时,当使用putAll()
时,如果数字包含在对象的值中,则会发生此类错误。另一方面,可以使用put()
。我可以通过将数字转换为字符串来删除错误。因为当我使用put()
输入数字时,检索到的值变为字符串。我可以注意到这个解决方案。那么在您的脚本中,如何进行以下修改?
db[tmp] = i;
db[tmp] = i.toString();
或
db[tmp] = String(i);
如果这不适合您的情况,我很抱歉。