我希望通过jQuery.ajax()
获取一些数据,通过成功保存这些数据,然后使用它。
功能的顺序是:
$.ajax({
url: this.html_url,
cache: false,
success: function(data){
//Here the data is saved via HTML5 localStorage
}
});
doSomething();//The stored data is used in this function.
问题是在成功函数保存下载数据之前调用doSomething()
。因此,数据在被保存之前就被使用了。有人可以帮忙吗?
答案 0 :(得分:1)
假设我理解你的意思。为什么不在doSomething()
回调中拨打success
?
$.ajax({
url: this.html_url,
cache: false,
success: function(data){
//Here the data is saved via HTML5 localStorage
doSomething();//The stored data is used in this function.
}
});
答案 1 :(得分:1)
这是因为ajax
调用了asynch
。通过async : false
在{ajax调用中设置default
true
。
<强> DOCUMENTATION 强>
$.ajax({
url: this.html_url,
cache: false,
async : false, // added this
success: function(data){
//Here the data is saved via HTML5 localStorage
}
});
在doSomething
success
的第二种方法
success: function(data){
//Here the data is saved via HTML5 localStorage
doSomething()'
}
答案 2 :(得分:0)
那是因为AJAX调用是异步的。这意味着您的脚本在继续之前不会等待它们完成(很像setTimeout()
)。
只需在成功回调中包含您的doSomething()
功能。
答案 3 :(得分:0)
$.ajax({
url: this.html_url,
cache: false,
success: function(data){
//Here the data is saved via HTML5 localStorage
},
async:false,
});
doSomething();