javascript - Code.gs 中的 Google Apps 脚本返回对象

是否无法从服务器端返回 Google Apps 脚本中的对象? 我的代码如下:

function getAllEventsOfDate(){
  var cal = CalendarApp.getCalendarById(Session.getActiveUser().getEmail());
  var events = cal.getEventsForDay(new Date());
  var results = [];
  for(var i = 0; i < events.length;i++){
    var event = {title:events[i].getTitle(), desc:events[i].getDescription(), location:events[i].getLocation(), startTime:events[i].getStartTime(), endTime: events[i].getEndTime()}; 
    results.push(event);
  }
  Logger.log(results);
  return results;
}

在我的 HTML(称为 Agenda.html)中我有这个:

$(document).ready(function(){
  google.script.run.withSuccessHandler(getAgendaData).getAllEventsOfDate();
 });

function getAgendaData(data)
{
    console.log(data);
}

这应该只返回我从数组中的事件数据定义的对象。但是,这不起作用,我收到一个错误,提示脚本已成功完成,但返回值不是有效的返回类型。如果我将返回语句更改为return results[0];,它也不起作用(想检查它是否由数组引起)。如果我将它更改为 return results[0].title; 它确实有效:我的日历的第一个事件的标题显示在控制台中。 这是否意味着我不能归还对象?任何帮助将不胜感激。

我的 Code.gs doGet 有这个:

function doGet(){
    return HtmlService.createTemplateFromFile('Agenda').evaluate();
}

更新

我自己发现的,显然 Date-types 不是合法的参数类型或返回类型(这也适用于数组,对象,...中的变量)。我已将用作参数或返回类型的每个日期更改为 .toString(),现在它可以工作了。使用这些日期字符串,我也可以为这些日期创建日期对象。

最佳答案

.gs 脚本可以返回一个对象。从您的更新来看,您似乎发现了问题。

https://stackoverflow.com/questions/27643515/

相关文章:

android - 有没有办法知道设备中蓝牙芯片的详细信息?

javascript - 单击播放音频时出现不必要的延迟

c# - 自动实现的属性 setter 上的条件断点

ruby-on-rails - 康康舞能力 : allow site admin with roli

django - 如何从 Django 中的信号获取返回响应

visual-studio-2013 - 即使通过 NuGet 安装,SpecFlow 也找不到包

xaml - String.format xaml 电话号码

python - 如何移动 Canvas 多边形?

php - 在 app.yaml Google App Engine 中将参数传递给 php

python - pymssql : Inserting mutliple values into