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