我想获取以下行的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/