这是我第一次尝试执行延迟功能,但是我显然出错了。我有点困惑,因为显然有几种方法可以做到,但是我尝试了从我能找到的最简单的方法开始
Get_JSON( my_url ).done(function(data) {
console.log( data['name'] );
});
function Get_JSON( url ) {
var def = $.Deferred();
$.getJSON(url).done(function(data){
console.log( data['name'] );
def.resolve({
data:data
});
});
return def;
}
我的控制台输出是:
John
undefined
(John是期望的名字)
我怀疑这def.resolve
是我弄错的部分。
您的主要问题是您使用了错误的密钥:
做:
Get_JSON( my_url ).done(function(data) {
console.log( data.data['name'] );
});
但是,您可以将代码简化为:
Get_JSON( my_url ).done(function(data) {
console.log( data['name'] );
});
function Get_JSON( url ) {
return $.getJSON(url);
}
甚至对此:
$.getJSON(my_url).done(function(data) {
console.log( data['name'] );
});
基本上,$.getJSON
已经返回一个Deferred
对象,并且您的代码通过代理增加了冗余。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句