jQuery变量范围?

时间:2010-08-16 13:41:33

标签: jquery

为什么我不能将ajaxResult分配给结果?的console.log(结果);在成功选项中正常工作,并在控制台中显示第二个。但是最后一个console.log(结果)的结果;未定义并首先出现在控制台中。这有什么问题?

$(function () {
        var result;
        $.ajax({
            type: 'POST',
            url: 'GelinlikSet',
            dataType: 'json',
            success: function (ajaxResult) {
                result = ajaxResult;
                console.log(result);
            }
        });
        console.log(result);
    });

3 个答案:

答案 0 :(得分:2)

result回调运行后,

ajaxResult应设置为success

在当前线程完成之前(即调用$.ajaxconsole.log的线程),AJAX回调将无法返回。

如果您需要对结果执行某些操作,则必须从success回调中执行此操作。

答案 1 :(得分:1)

ajax调用之外的console.log正在ajax返回之前执行。

成功的console.log应该记录ajax的内容。

答案 2 :(得分:0)

第二个console.log在ajax调用之后立即执行,之后调用success函数,因为它是异步的(即Ajax中的A)。