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