vueaxios异步请求及回调函数(前台)
问题
前台逻辑遇到以下情景
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请求的回调函数中,待请求执⾏完成再做操作。