javascript - 如何从google脚本url返回json

标签 javascript jquery json timeline.js

我想获取以下行的timeline_json中的json值

          window.timeline = new VCO.Timeline('timeline-embed', new VCO.TimelineConfig(timeline_json));

以上行位于 document.ready 中

为了获取timeline_json,我编写了一个函数。我将按照我的代码的确切顺序粘贴代码。

function get_json(){
  $.getJSON("https://script.google.com/macros/s/FILE_ID/exec", function(data) {
  console.log(data);  
  return data;
 });
}

 var timeline_json=get_json();
 console.log(timeline_json)


 window.timeline = new VCO.Timeline('timeline-embed', new VCO.TimelineConfig(timeline_json));

在控制台中,我按此顺序获取对象

undefined
timeline.js:2950 Uncaught Invalid 
index.html:78 Object {title: Object, events: Array[18]}

如果我先得到对象,那么它就会起作用。

最佳答案

默认情况下,ajax 请求是异步的(并且应该始终如此)。您无法从 ajax 请求回调返回任何值。您可以做的是从您的方法返回 promise (ajax 请求),然后使用相关的延迟方法,例如 done():

function get_json() {
    return $.getJSON("https://script.google.com/macros/s/FILE_ID/exec");
}

get_json().done(function (data) {
    window.timeline = new VCO.Timeline('timeline-embed', new VCO.TimelineConfig(data));
});

关于javascript - 如何从google脚本url返回json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428650/

相关文章:

javascript - jQuery mouseenter 和 mouseleave 处理程序无法正常工作

json - 如何在 flutter 中解析嵌套的 JSON?

javascript - 使用鼠标事件在 Canvas 上绘制一个圆圈

javascript - React 中使用鼠标滚轮缩放图像

javascript - 如何从接口(interface)或 promise 的内容中获取 "recieve" promise ?

javascript - 在 JavaScript 的循环中获取请求

javascript - 在同一个 MVC 项目中的 C# 类和 JS 文件中使用相同的静态数据,而无需在运行时一次又一次地重建

javascript - 如何取消选中多个选定的选择器中的选项

c# - JsonProperty - 使用不同的名称进行反序列化,但使用原始名称进行序列化?

javascript - Rails 动态表单提交。请求中json格式不正确