4
我希望能夠轉換ajax調用返回的數據並將其傳遞給另一個插件的構造函數。我認爲,如果插件的選項接受了其數據的對象或返回數據的函數,這將允許我使用延遲對象作爲jQuery.ajax。轉換或替換jquery.ajax承諾
蹭的是我需要在客戶端轉換數據,並且無法看到如何使用jQuery.Deferred對象執行此操作。有很多不同的複雜性的例子,但不是很多涉及傳遞和變換參數的例子。
這是一些代表我試圖實現的代碼。
function shapeResults(rawData) {
return $.Deferred(function (dfd) {
//transform in someway
var shapedData = rawData.toUpperCase();
alert(shapedData);
//change the 'signature' from jqXHR to data
dfd.resolve(shapedData);
}
).promise();
}
function useTransformedData (data) {
//hoping for UPPERCASE data here but still getting rawData
alert(data);
}
$.get('/')
.success(shapeResults)
.then(useTransformedData);
因爲它代表了useTransformedData回調似乎總是收到RAWDATA而非transformedData。
是我想要的,如果有的話可以有人幫助指向正確的方向嗎?
天才,謝謝。值得注意的是,管道是在1.6中添加的,這就是爲什麼我沒有發現它讀取1.5的源代碼:) – 2011-06-08 01:39:24
應該注意''deferred.pipe()'不贊成使用jQuery 1.8而贊成改進'deferred.then()':http://api.jquery.com/deferred.then/ – alxndr 2013-10-28 18:17:45