gpt4 book ai didi

javascript - google.script.run.withSuccessHandler 不返回值

转载 作者:行者123 更新时间:2023-12-04 12:42:39 30 4
gpt4 key购买 nike

这让我发疯了,代码昨天还在工作,但现在不行了。我尝试再次检查所有语法,但问题仍然存在。来自 Google 表格的此服务器端请求,在服务器端显示值 (Logger.log()),但返回 null在客户端。

function supervisorLine(lineData) {
if (lineData == 'Name Value is not VALID!') {
console.log("Supervisor Name Issue!");
} else {
document.getElementById('Team').value = lineData[7];
document.getElementById('Shift').value = lineData[12];
document.getElementById('action').classList.remove("disabled");
console.log("team " + lineData[7] + " shift " + lineData[12]);
////////////////////////////////// need to be Moved somewhere after password check!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
google.script.run.withSuccessHandler(function(quickStat2) {
console.log(quickStat2)
}).loginRecords(lineData[7], lineData[12]);
}
}
这也是我的服务器端代码:
function loginRecords(team, shift) {
var sh = ss.getSheetByName("Attn Rec");
var result = [];
var matchRec = sh.getRange("a2:l" + sh.getLastRow()).getValues().filter(function(a) {
return a[1] === shift && a[4].valueOf() == team.valueOf()
});
uniqeLogin = removeDups(matchRec.map(function(a) {
return a[9]
}));
// Logger.log(uniqeLogin);
uniqeLogin.forEach(function(a) {
var ary = [team, 0, shift, "", 0, 0, 0, 0, 0];
matchRec.forEach(function(r) {
if (r[9] === a) {
ary[1] = new Date(r[0]);
ary[3] = r[8];
switch (r[3].toString().toLowerCase()) {
case "off-site work":
case "hr action":
ary[8]++;
break;
case "present":
case "late transfer":
case "transfer":
ary[4]++;
break;
case "no show":
ary[5]++;
break;
case "Sick":
case "vacation":
ary[7]++;
break;
case "late":
case "approved delay start":
ary[6]++;
break;
}
}
});
result.push(ary);
});
Logger.log(result);
return result;
}
回顾一下, Logger.log(result)返回我需要的数组,但是 console.log(quickStat2)返回 null .

最佳答案

我前段时间遇到了这个问题,它也几乎让我发疯(哦,松散类型的 JavaScript 的乐趣!)。问题是您试图返回 Not Acceptable 类型 数据到客户端。通过 google.script.run 调用的函数对它们可以返回的内容有限制(例如,您应该避免 Date 实例)。
限制类型
目前,您无法返回(查看 documentation 以了解限制的详细说明):

  • Date实例;
  • 任意 Function ;
  • DOM 元素(尽管 <form> 是允许的);

  • 解决方案
    更改 ary[1]= new Date(r[0]);ary[1] = r[0];应该做的伎俩,只需移动 Date解析给客户端。

    关于javascript - google.script.run.withSuccessHandler 不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480228/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com