为什么我在 Google App Maker 中调用这些脚本时得到未定义的值?

Why am I getting an undefined value when calling these scripts in Google App Maker?

我不明白为什么当我从 ClientScript 方法调用 ServerScript 方法时,我得到的值是未定义的。

客户端脚本:

    function clientScript() {
      var message;
      message = google.script.run.test();
      console.log("Message: " + message);
    }

服务器脚本:

    function serverScript() {
       return "hello";
    }

我希望控制台打印:消息:你好。但是,我将此打印到我的控制台:消息:未定义。为什么当我在我的 ServerScript 方法中返回一个已定义的值时,我在我的 ClientScript 方法中得到一个未定义的值?谢谢!

因为服务器调用是异步的。为了处理服务器响应,您需要传递回调。这是来自 Apps Script docs 的片段:

function onSuccess(numUnread) {
  console.log(numUnread);
}

google.script.run.withSuccessHandler(onSuccess)
    .getUnreadEmails();

以防万一 AMs 文档对同一事物的解释 - https://developers.google.com/appmaker/scripting/client#call_a_server_script