我想寫一個程序,在2個對象因ajax函數的回調而返回後執行某些操作。jquery從ajax調用的回調推遲
我知道使用jQuery的經典例子,當():
$.when($.get("http://localhost:3000/url1"),
$.get("http://localhost:3000/url2").done(//do something));
但在我的情況,我不想觸發時的AJAX功能的執行,我想的時候從執行ajax函數的回調中觸發。例如:
$.get("http://localhost:3000/url1", function(data){
function(){
//do something with the data, and return myobj1;
}
});
$.get("http://localhost:3000/url2", function(data){
function(){
//do something with the data, and return myobj2;
}
});
$.when(obj1, obj2).done(function(){
//do something with these 2 objects
});
但當然,這是行不通的。想法?
是的,你發佈的作品。但問題在於,當$ .get函數返回時啓動了when,但如果您注意到上述情況,我會爲每個$ .get請求發生回調,並且何時不會等待這些回調進行處理,只是當$ .get函數完成時。所以,何時發射太早。 –
@RyanOgle如果你不能因爲某種原因一起處理這些響應,你可以創建你自己的延遲並使用它們。通過示例更新答案。 – Trevor
@ Trevor我必須在這裏失去一些東西。在你添加的例子中,when()不應該觸發,直到2延遲得到解決?我沒有得到這個工作。看看這個簡單的例子:http://jsfiddle.net/ax4u4/當()被觸發時,即使延遲對象永遠不會被解析。 –