我正在努力使用延遲鏈接管道的回調。它似乎工作得很好,但在回調2中,它使我從回調1的數據。下面是代碼的樣子:使用延遲和管道的回調鏈接
var getCall1 = function() {
return $.ajax(url, {
type: "GET",
data: { },
contentType: "application/json",
dataType: "json"
});
}
var getCall2 = function() {
return $.ajax(url, {
type: "GET",
data: {},
contentType: "application/json",
dataType: "json"
});
}
var callback1 = function (data)
{
alert('call 1 completed');
};
var callback2 = function (data)
{
alert('call 2 completed');
};
$.when(getCall1()).done(callBack1).pipe(getCall2()).done(callBack2);
我在這裏丟失了什麼?
- 編輯 -
如果我在兩個延期調用打破它們,它的工作原理,但隨後有什麼用鏈接和管的?
$.when(getCall1()).done(callBack1);
$.when(getCall2()).done(callBack2);
--Correct方式做this--
var getCall1 = function() {
return $.ajax(url, {
type: "GET",
data: { },
contentType: "application/json",
dataType: "json"
});
}.pipe(function (d){return d});
var getCall2 = function() {
return $.ajax(url, {
type: "GET",
data: {},
contentType: "application/json",
dataType: "json"
});
}.pipe(function (d){return d});
var callback1 = function (data)
{
alert('call 1 completed');
};
var callback2 = function (data)
{
alert('call 2 completed');
};
$.when(getCall1, getCall2).done(function(d1, d2){
callback1(d1);
callback2(d2);
});
一個新的jsfiddle就在你的示例代碼,錯字? (應該是回叫,而不是駝峯式的callBack) – 2012-03-26 15:26:55
是的。它是一個錯字。 – Asdfg 2012-03-26 15:50:53