Chr*_*Han 6 javascript jquery asynchronous callback
在Javascript中,我有两个对数据的异步请求:
$.getJSON('http://foo.com', fooQuery, fooSuccess(data));
$.getJSON('http://bar.com', barQuery, barSuccess(data));
Run Code Online (Sandbox Code Playgroud)
和两个回调来处理收到的数据:
fooSuccess(data) { // Stuff }
barSuccess(data) { // More Stuff }
Run Code Online (Sandbox Code Playgroud)
如何确保仅在fooSuccess完成后执行barSuccess?
笔记:
非常感谢你的智慧和帮助!
以下是使用ajax请求返回的jQuery延迟对象的方法.
var fooDfd = $.getJSON('http://foo.com', fooQuery);
var barDfd = $.getJSON('http://bar.com', barQuery);
fooDfd.then(function(fooData){
fooSuccess(fooData);
barDfd.then(barSuccess);
});
Run Code Online (Sandbox Code Playgroud)
最好的方法是使用这样的jQuery when().done()功能:
$.when(
$.getJSON('http://foo.com', fooQuery, fooSuccess(data)),
$.getJSON('http://bar.com', barQuery, barSuccess(data))
).done(function(arg1, arg2){
fooSuccess(arg1);
barSuccess(arg2);
});
Run Code Online (Sandbox Code Playgroud)
done()所有请求成功完成后,这允许同时执行AJAX请求并保证执行该功能.
| 归档时间: |
|
| 查看次数: |
2754 次 |
| 最近记录: |