Cy66666666
  • 问题

前台逻辑遇到以下情景

tempList(){
var temp;
//1执行ajax 取得值 temp中放数据
this.$axios.post(http://localhos:8080, params).then((res) => {
if (res.data.retCode == '1') {
//执行操作
}
else {
//提示错误
}
});
2判断 temp值 做操作
}

执行时会出现temp值为undefined的问题,原因是ajax为异步请求,第二部不会等待第一步完成在执行,当执行第2步时ajax请求并未完成,temp并没有被赋值造成的。

  • 解决方法
tempList(){
var temp;
//1执行ajax 取得值 temp中放数据this.$axios.post(http://localhos:8080, params).then((res) => {
if (res.data.retCode == '1') {
//执行操作
2判断 temp值 做操作 //重点
}
else {
//提示错误
}
});
}
  • 延伸

js代码会从上到下执行,但是当遇到异步的情况,如ajax请求时,并不会等到拿到请求结果在做以后的操作,如果这是需要用到请求结果,则会出现错误,一般采用回调函数的方式解决。将需要请求数据的方法放在ajax请求的回调函数中,待请求执行完成再做操作。

 

 

分类:

技术点:

相关文章: