再一次:AJAX - >使用回调将结果存储在变量中(未定义)

时间:2016-09-03 14:59:37

标签: javascript jquery ajax

我对一个非常常见的问题有疑问。关于这个问题,可能已经提出了数十个问题。但不幸的是,我无法解决我的问题。也许你可以帮助我! 我有以下代码:

    function get_network_from_database(callback) {
    $.ajax({
        type: "POST",
        url: "load_network.php",
        data: "json",
        success: callback
    }); 
}

function myCallback(result) {
    return result;
}

var matrix = get_network_from_database(myCallback);

现在,当我提醒矩阵时,它会显示undefined,但是当我alert(get_network_from_database(myCallback))时;然后它会提醒正确的数据。

请告诉我一个问题是什么?我想要的只是将结果放在矩阵变量中。

提前多多感谢!

1 个答案:

答案 0 :(得分:0)

如果alert(get_network_from_database(myCallback))提供正确的数据,我会非常惊讶。 get_network_from_database不返回任何内容。

Ajax请求是异步发生的。因此,无论您需要做什么,都需要在myCallback中进行。即alert(result)

或者你可以考虑使用promises。将get_network_from_database更改为return $.ajax(....)。然后,您应该可以执行类似matrix.then(function(result) { alert(result); })而不是alert(matrix)的操作。