首页 > 解决方案 > 成功数据从 AJAX GET 类型返回 null

问题描述

我正在使用以下代码success data进入variable

    var compdet = null;

    $.ajax({
        url: uri2 + "/" + $("#textbox_id").val(),
        type: "GET",
        cache: false,
        success: function (data) {
            compdet = data;
        }
    });

为了检查我var compdet是否有价值,我补充说:

    console.log(compdet);

可悲的是,它返回 JUST nullconsole.log所以我试着把

    success: function (data) { console.log(data); }

它返回我想看到的输出。谁能给我解释一下?

我在这里意识到了一些事情。您实际上可以进行Javascript函数asyncawait AJAX调用。

例如:

async function func_name() {

    await $.ajax({
        // some codes here
    });

}

标签: javascriptjqueryhtmlajax

解决方案


JavaScript 执行是同步的,但AJAX异步的。如果您在AJAX之后有任何代码,它可能会在完成 AJAX 之前执行。这就是你获得价值的原因null

在这种情况下,您可以在success()回调中执行下一个代码,或者调用另一个方法来执行下一个代码块。

方法调用示例:

function next(compdet) {
    // code stuff
}

$.ajax({
    url: uri2 + "/" + $("#textbox_id").val(),
    type: "GET",
    cache: false,
    success: function (data) {
        next(data)
    }
});

查看同步与异步之间的区别。


推荐阅读