这两个函数都是$.getJSON()
函数,即使我的第一个函数放在另一个函数之前,它有时会发生在第二个函数之后。请注意,我提到“有时”。当我不断刷新页面时,我会得到不同的结果,就像是随机选择首先调用哪个函数。以下是代码片段:
timeClusters = [];
$.getJSON('java_output/tasksTab.json', function (data) {
console.log ("first");
// Method stuff here, not important
});
$( document ).ready(function() {
console.log("second");
// Method stuff here, not important
});
现在,当我运行程序并查看控制台时,有时我会得到
first
second
但其他时候我
second
first
我必须先获得第一个,第二个,因为第二个方法处理在第一个方法中生成和更改的数据。
如果您需要更多信息,请告诉我
答案 0 :(得分:1)
getJSON
方法是异步的,这意味着一旦启动它最终会保存一个结果,包含在文档就绪中的函数会在DOM准备好后立即触发,而不是执行此操作序列将代码从ready
函数移动到getJSON
回调:
$(document).ready(function() {
$.getJSON('java_output/tasksTab.json', function (data) {
console.log ("first");
}).done(function() {
console.log( "second" );
})
})
由于adeneo指出您实际上并不需要链接done
方法,因此您只需在默认回调中添加计算:
$(document).ready(function() {
$.getJSON('java_output/tasksTab.json', function (data) {
console.log ("first");
console.log( "second" );
})
})
您可以使用的其他类型的回调是fail
和always
。