从函数内的Ajax调用返回数据

时间:2019-03-17 21:05:46

标签: jquery

我正在调用一个发送ajax GET请求的函数,但是我无法检索到响应。

function testfunc(account_seq, customer, dtype, dnumber) {
    var ret;

    if(dtype === "phone") {
        var x = $.ajax({
            url : '/url',
            type: "GET",
            data: {
                "action": "get",
                "seq": account_seq,
                "customer": customer,
                "id": id || '',
            },
            dataType: 'json',
        });
        x.done(function(data) {
            ret = data;
        });
    }
    return ret;
}

我也曾尝试在return data;内添加x.done,但似乎什么也没有返回。

我看到网上有人说过要在.done内调用另一个函数

function callback(data) {
    // do work here
}

我不确定是否缺少某些内容,但是当我调用testfunc函数时,该如何调用回调函数,或者我不需要这样做?

1 个答案:

答案 0 :(得分:0)

您要尝试做的是调用一个函数以获取异步操作的结果。 $.ajaxjQuery.ajax的简写,它执行异步HTTP(Ajax)请求。

AJAX = A 同步的 J avaScript A X ML。

代码的问题是您试图以同步的方式获取异步请求的结果。

知识是理解的基础,这就是为什么我鼓励您阅读以下文章:JavaScript Goes Asynchronous (and It’s Awesome),因为在这里您会找到许多有关异步编程的答案,以及可以使用(回调,承诺,异步等待)。