微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

异步AJAX调用不起作用,然后

我有以下代码

function accessControl(userId) {
    return $.ajax({
        url: "userwidgets",
        type: "get",
        dataType: 'json',
        data: {
            userid: userId
        }
    });
};

var userWidgets = accessControl('1');
$.when(userWidgets).then(function (data) {
    alert(data);
});

我不想通过添加参数async:false来使函数同步,但是警报根本没有出现,我的代码有问题吗?我应该使用另一种方法吗?

解决方法:

$.ajax返回一个承诺.因此,不需要再次将其包装在$.中.

然后直接在userWidgets上使用,因为它是ajax实例.

userWidgets.then(function (data) {
    alert(data);
}, function(e, status, error) {
    console.log(error);
    // For debugging
});

从jQuery Docs

jqXHR.then(function( data, textStatus, jqXHR ) {}, function( jqXHR, textStatus, errorThrown ) {});

Incorporates the functionality of the .done() and .fail() methods, allowing (as of jQuery 1.8) the underlying Promise to be manipulated. Refer to deferred.then() for implementation details.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐