开发者社区> 问答> 正文

js ajax 函数封装 闭包 回调

有这样一个函数:

function getUserInfo(){

     $.ajax({
        type: "POST",
        url: "/user",
        dataType: "json",
        contentType: "application/json;utf-8",
        timeout: 6000,
        error: function () { },
        success: function (data) {  
              console.log(data);      
        }
    });
};

执行这个函数, 希望有个回调,例如: 接上上面的函数写

getUserInfo(data,function(data){
    console.log(data);
})

希望 在 以上代码中 可以获取 getUserInfo 函数的 ajax 查询到的 data 数据

该方法有大神指导一下 该如何写吗

展开
收起
小旋风柴进 2016-05-27 08:35:39 2111 0
1 条回答
写回答
取消 提交回答
  • 回调

    function getUserInfo(data, options) {
        $.ajax({
            type: "POST",
            url: "/user",
            dataType: "json",
            contentType: "application/json;utf-8",
            data: data,
            timeout: 6000,
            error: function () {
                options.fail && options.fail();
            },
            success: function (response) {
                options.success && options.success(response);
            }
        });
    }
    
    getUserInfo(data, {
        success: function (response) {
            console.log(response);
        },
        fail: function () {
            //TODO
        }
    });
    Deferred
    function getUserInfo(data) {
        return $.ajax({
            type: "POST",
            url: "/user",
            dataType: "json",
            contentType: "application/json;utf-8",
            data: data,
            timeout: 6000
        });
    }
    
    getUserInfo(data)
        .done(function (response) {
            console.log(response);
        })
        .fail(function () {
            //TODO
        });

    建议使用第二种方式

    2019-07-17 19:16:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载