jQuery变量范围?

jQuery变量范围?,jquery,Jquery,为什么我不能将ajaxResult指定给result?控制台日志(结果);正常工作,位于成功选项内,并显示在控制台的第二个选项中。但是console.log的最后一个结果(result);未定义,第一次出现在控制台中。这有什么问题 $(function () { var result; $.ajax({ type: 'POST', url: 'GelinlikSet', dataType: '

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

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

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


success中的console.log是记录ajax的地方。

在ajax返回之前,将执行ajax调用外部的console.log


success中的console.log应该是记录ajax内容的地方。

result
应该在
success
回调运行后设置为
ajaxResult

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


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

成功
回调运行后,应将
结果
设置为
ajaxResult

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


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

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

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

只需删除最后一个console.log,结果不需要在那里定义,只需删除最后一个console.log,结果不需要在那里定义