我好像走进了死胡同。
我尝试使用 jQuery .get()
加载数据,但在调试时,它显示该函数执行了两次,因此 prodList
中的值丢失了。
$.get(url, function (model) {
prodList = $.parseJSON(model);
alert(prodList);
});
alert(prodList);
在第一个alert()
中,它显示从服务器返回的数据。但在第二个 alert()
中它显示空字符串。
我做错了什么?
最佳答案
您显示的代码并未表明执行有任何问题。
关于值的警报。
$.get()
是异步执行,这意味着代码执行在 .get()
启动后继续。
您指定的回调函数在 .get()
完成之前不会执行,但其余代码将继续执行。
因此,第一个警报会显示执行回调之前的值,因此 prodList
尚未填充。
在回调函数中填充值后,将显示第二个警报。
$.get(url, function (model) {
prodList = $.parseJSON(model);
alert(prodList); // prodList is now populated
});
alert(prodList); // prodList here is alerted before it is populated
如果您想使用 prodList
执行某些操作,您可以在回调函数本身中使用它,或者从回调函数调用另一个函数,将 prodList
作为参数传递给 process它就在那里。
关于jquery - $.get() 加载两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15848331/