延期的getJSON返回未定义

多汁的

这是我第一次尝试执行延迟功能,但是我显然出错了。我有点困惑,因为显然有几种方法可以做到,但是我尝试了从我能找到的最简单的方法开始

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是我弄错部分。

tcooc

您的主要问题是您使用了错误的密钥:

做:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章