将数组从Code.gs传递到Javascript Google App脚本

时间:2018-07-13 15:48:28

标签: javascript google-apps-script

我有一个函数,该函数返回Code.GS文件中的对象数组,该数组要传递到index.html文件中的变量中以在JavaScript中使用。但是由于某种原因,该变量未更新,在我看来onSuccess函数未在运行。

Code.gs文件

        function getData(){
        var dates = [{
                title  : 'obj',
                time  : '2018-07-13T',
                color: '#C2185B'
            },
            {
                title  : 'obj2',
                start  : '2018-07-19',
                end    : '2018-07-20',
            },
          ];
      return dates;
    }

index.html文件:

<script>
 var dates;

function onSuccess(array) {
   dates = array;
}
google.script.run.withSuccessHandler(onSuccess).getData();
<!-- code that requires dates array-->
</script>

1 个答案:

答案 0 :(得分:0)

所有google.script.run调用都是异步的,这意味着该功能需要花费一些时间才能从Apps Script服务器获取响应。同时,需要使用dates数组的代码是同步的,并且在dates变量更新之前就已执行。因此,需要dates数组的代码可能应该存在于onSuccess处理程序中。

如果您真的想花哨的话,甚至可以利用Promises来使您的代码同时异步和顺序可读。