谷歌脚本LockService getUserLock()
声明,将阻止当前用户同时执行代码段。
我有一个自定义公式函数,不应该从不同的字段同时调用。这是因为公式需要根据工作表中的几个现有值计算返回值,每次调用公式时都可能会更新。
我的功能看起来像这样
function MYFORMULA(field1 , field2){
var uLock = LockService.getScriptLock();
var lck = uLock.tryLock(100000);
if(lck){
// do some calculations on given values
}
uLock.releaseLock();
return value;
}
现在我在单元格上应用公式,并通过拖动将公式复制到coloumn中的所有单元格。所有公式都是并行评估的,并不考虑由前面的公式调用引起的更新的单元格值 用户锁可以做到这一点来防止这种情况吗?或者还有其他方法吗?