js中try?catch使用遇到的問題
try…catch語法,簡單來說就是用來捕獲異常的,我就簡述一下我遇到的問題
當使用vuex在actions發(fā)請求時,這個接口不僅可以添加購物車數(shù)據(jù),同時也可更新產(chǎn)品的數(shù)量,我就在更新產(chǎn)品數(shù)量的地方出現(xiàn)了問題,
先說說我的問題:點擊增加/減少產(chǎn)品數(shù)量,第一次點擊+,確實發(fā)請求了,但是數(shù)據(jù)并沒有發(fā)生改變,第二次點擊數(shù)值直接變成12,跳過了展示11的過程。于是我開始排查代碼。。。。。
利用try...catch可捕獲代碼異常,當然,我的代碼并沒有報錯,但是使用了try...catch之后確實功能正常了。所以我覺得我們要養(yǎng)成使用try...catch的習慣,用在哪?
當后臺報錯時,你可以用try...catch捕獲錯誤,縮小檢查范圍。
在發(fā)請求時,可使用,因為發(fā)請求時的
其實就是給try...catch用的,一旦數(shù)據(jù)沒回來或者異常,能較準確的告訴你哪里出了什么問題,提高編碼效率。try...catch在組件中使用時,我們是需要知道請求的結果的,所以寫了一個判斷,讓try...catch提供給我們報錯的詳細信息
例如:我進行路由跳轉之前要發(fā)請求,請求成功時,再路由跳轉,否則報錯,這時,就用try...catch包裹這個請求,這樣如果出現(xiàn)報錯,那一定是請求出現(xiàn)了問題,所以各位盡量用。
這個try...catch我個人理解,目前它比捕獲異常作用還大的就是能夠保證代碼能夠順序進行,減少bug,雖然不報錯,但是有些邏輯問題存在,一旦使用了就沒事了。
怎么用?僅僅是包裹嗎?
首先我們要知道
this.$store.dispatch("XXXXX")//這個的返回值是什么?是promise對象
如何證明?
你可以let result=this.$store.dispatch("XXXXX")//打印一下試試
既然是一個promise對象,那就得用await來等待,而await和async是CP,所以要配合使用,僅看畫框的即可。
唉,雖然寫起來比較麻煩,但是確實能縮小檢查錯誤的范圍,具體詳細的介紹或許你可以拿出一點時間去學習一下es6新語法,在那里你可以獲得更多更詳細更全面的知識體系,諸君加油!
總結
到此這篇關于js中try catch使用遇到的問題的文章就介紹到這了,更多相關js中try catch用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解在IDEA中將Echarts引入web兩種方式(使用js文件和maven的依賴導入)
這篇文章主要介紹了在IDEA中將Echarts引入web兩種方式(使用js文件和maven的依賴導入),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07javascript parseUrl函數(shù)(來自國外的獲取網(wǎng)址url參數(shù))
在外國一博客看到一個很好的函數(shù),獲取網(wǎng)址url等地址參數(shù)。非常不錯,值得參考與收藏。2010-06-06JavaScript?字符串新增方法?trim()?的使用說明
這篇文章主要介紹了JavaScript字符串新增方法trim()的使用說明,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-09-09jQuery animate()實現(xiàn)背景色漸變效果的處理方法【使用jQuery.color.js插件】
這篇文章主要介紹了jQuery animate()實現(xiàn)背景色漸變效果的處理方法,結合實例形式分析了jQuery顏色插件jquery.color.js實現(xiàn)背景色漸變的簡單操作技巧,需要的朋友可以參考下2017-03-03