jQuery.when函数,在ajax调用完成后无法获取值

时间:2013-10-25 20:31:27

标签: javascript jquery ajax

我正在努力使jQuery.when功能起作用。

我有一个功能测试,它连接到另一个脚本并检索 firstName 值。

这样可行,如果我执行console.log

,我可以看到该值

但我似乎无法在 .done函数中提供该值

任何想法为什么?

function test (email, key) {

        if (!isEmpty(email) && !isEmpty(key)) {

            var script = getScriptUrl(email, key);

            return  jQuery.ajax({
                        url : script,
                        dataType: 'script',
                        success : function() {
                            // This function retrieves the fisrtname value
                            firstName = getScriptUrlFunction('FirstName');
                        }
                    });
        }
    }



$.when(

    test(email, key)

).done(function(aa1) {

    // This shows undefined - how do I get the firstName here?
    // Why doesn't it work?

    console.log(aa1);

});

这是aa1的控制台:

[undefined, "success", Object { readyState=4, status=200, statusText="success", more...}]

有没有办法从 aa1 获取名字值?基本上把它传递给 aa1

泰!

1 个答案:

答案 0 :(得分:1)

您需要使用.then()链接而不是success回调:

return $.ajax({ ... })
    .then(function() { return getFirstName(...); });