【问题标题】:Apps script cant return boolean value from server by google.script.run应用程序脚本无法通过 google.script.run 从服务器返回布尔值
【发布时间】:2021-03-16 10:06:59
【问题描述】:

我对此有头脑风暴。

在 Apps 脚本和电子表格中我有函数

    function searchLogins(UserInfo){
    
    let sheetSRCHLGN = sprSRCH.getSheetByName("LOGINS");
    let findingRLGN = sheetSRCHLGN.getRange("A:A").getValues();
    let valToFind = UserInfo.zLOGIN;
   
    for (let i = 0; i < findingRLGN.length; i++){
      if(findingRLGN[i].indexOf(valToFind)!==-1){
        return true;
      }
    };
    return false;
    
}

在 HTML 格式中我有这个:

var UserInfo = {};
    UserInfo.zLOGIN = document.getElementById("LOGIN").value;
    UserInfo.zSSCC = document.getElementById("SSCC").value;
    UserInfo.zPLACE = document.getElementById("PLACE").value;


 var findLogin = google.script.run.withSuccessHandler(onSuccess).searchLogins(UserInfo);
          if (!findLogin){
            allValid = false;
          };

.....

function onSuccess(findLogin) {
if (!findLogin) {
    M.toast({
        html: "LOGIN IS NOT EXISTS"
    });
}

我需要以布尔值(真/假)从服务器返回数据,但我总是得到“未定义”。 我知道我必须通过 withSuccessHandler 来完成,但这对我没有帮助。

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    google.script.run.withSuccessHandler(function)

    • 设置一个回调函数在服务器端函数成功返回时运行。 服务器的返回值作为第一个参数传递给函数,用户对象(如果有)作为第二个参数传递。
    • 返回google.script.run
    • 您可以从提供的参考链接中参考Index.html 选项卡以获取其他示例代码。

    您期望的值被传递给您指定的回调函数onSuccess(findLogin)。如果要查看searchLogins(UserInfo)返回的值,可以在onSuccess(findLogin)函数中显示findLogin的值

    示例 HTML:

    var UserInfo = {};
    UserInfo.zLOGIN = document.getElementById("LOGIN").value;
    UserInfo.zSSCC = document.getElementById("SSCC").value;
    UserInfo.zPLACE = document.getElementById("PLACE").value;
    
    google.script.run.withSuccessHandler(onSuccess).searchLogins(UserInfo);
    
    
    .....
    
    function onSuccess(findLogin) {
      alert(findLogin);
      if (!findLogin) {
        M.toast({
          html: "LOGIN DOES NOT EXIST"
        });
      }
    }
    

    【讨论】:

    • 非常感谢!我在这方面是初级的。你的帮助是完美的!它有效!)))
    • 不客气。顺便说一句,如果我们回答了您的问题,请点击接受按钮。通过这样做,社区中可能与您有同样担忧的其他人将知道他们的问题可以得到解决。如果您无法使用接受按钮,请随时告诉我。 stackoverflow.com/help/accepted-answer
    • 我在任何地方都找不到这个按钮((
    • 嗨@DmitriyRudakov 谢谢你的更新。您可以通过单击投票按钮下方的“复选标记”按钮来接受答案。 How to accept answer
    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多