vue axios異步請求及回調函數(前台)


  • 問題

前台邏輯遇到以下情景

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請求的回調函數中,待請求執行完成再做操作。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM