我有这样的代码:
var array = [];
$('#next1').on('click', function(){
var dataString='company= '+$(this).closest('.inside').find('select').val();
$.ajax({
//async: false,
type:"POST",
url:"ajax/companyInfo.php",
data: dataString,
success: function(response){
array = response.split("/");
alert(array);
}//end success function
});//end ajax
console.log(array);
它提醒正确的数组但是记录空数组,意味着我在成功函数后无法使用它
是的,我已经阅读了很多关于这个问题的事情(包括这个:How do I return the response from an asynchronous call?)并使它同步解决问题(你看它在代码中注释),但是每个人都说使用这个方法非常糟糕。所以我有两个问题:
1:如果大小写同步,为什么它会提示正确的值。我的意思是它解释了在执行另一个代码之前同步等待响应而异步没有,这就是它无法捕获变量以分配给数组的原因。但如果是这样,它怎么能提醒他们呢?
2:我如何修改代码才能使其正常工作?
答案 0 :(得分:0)
因为它是异步的,所以日志行将在成功函数之前运行。填充数组后要执行的任何操作都必须在success函数中完成。或者在成功函数内调用的另一个函数内。