结论: 能!
今天在做微信小程序中,需要将通过接口请求到的数据储存到为一个当前区域的全局变量,因为请求是异步的,所以打印很多undefined 或者初始值;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div>万物皆有自己的轨道,迁跃需要能量</div>
<script>
var goodsInfo = {};
$(document).ready(function(){
$.ajax({url:"https://api-hmugo-web.itheima.net/api/public/v1/home/catitems",success:function(result){
goodsInfo = result;
console.log(goodsInfo);
}});
console.log(goodsInfo);
var time = 40;
setTimeout(()=>{console.log(goodsInfo);},time);
});
</script>
</body>
</html>
在设置延时时间为40ms时,我用浏览器刷新,有时候有数据,有时候没有数据
没数据打印情况
有数据打印情况
这种方式当然有一些弊端,如果数据不是取出来立马就要用,可以用,当然还有更好的异步处理方法。