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的習(xí)慣,用在哪?
當后臺報錯時,你可以用try...catch捕獲錯誤,縮小檢查范圍。
在發(fā)請求時,可使用,因為發(fā)請求時的

其實就是給try...catch用的,一旦數(shù)據(jù)沒回來或者異常,能較準確的告訴你哪里出了什么問題,提高編碼效率。try...catch在組件中使用時,我們是需要知道請求的結(jié)果的,所以寫了一個判斷,讓try...catch提供給我們報錯的詳細信息
例如:我進行路由跳轉(zhuǎn)之前要發(fā)請求,請求成功時,再路由跳轉(zhuǎn),否則報錯,這時,就用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,所以要配合使用,僅看畫框的即可。

唉,雖然寫起來比較麻煩,但是確實能縮小檢查錯誤的范圍,具體詳細的介紹或許你可以拿出一點時間去學(xué)習(xí)一下es6新語法,在那里你可以獲得更多更詳細更全面的知識體系,諸君加油!
總結(jié)
到此這篇關(guān)于js中try catch使用遇到的問題的文章就介紹到這了,更多相關(guān)js中try catch用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
table對象中的insertRow與deleteRow使用示例
本文為大家介紹下table對象insertRow deleteRow的使用示例,適合新手朋友們2014-01-01
JS中用childNodes獲取子元素換行會產(chǎn)生一個子元素
本文給大家分享JS中用childNodes獲取子元素換行會產(chǎn)生一個子元素的實例代碼,需要的朋友參考下2016-12-12
JS面向?qū)ο缶幊袒A(chǔ)篇(一) 對象和構(gòu)造函數(shù)實例詳解
這篇文章主要介紹了JS面向?qū)ο缶幊虒ο蠛蜆?gòu)造函數(shù),結(jié)合實例形式詳細分析了JS面向?qū)ο缶幊虒ο蠛蜆?gòu)造函數(shù)具體概念、原理、使用方法及操作注意事項,需要的朋友可以參考下2020-03-03
微信小程序?qū)崿F(xiàn)左側(cè)導(dǎo)航欄
這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)左側(cè)導(dǎo)航欄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07
Chrome下ifame父窗口調(diào)用子窗口的問題示例探討
這篇文章主要介紹了Chrome下ifame父窗口調(diào)用子窗口的問題,需要的朋友可以參考下2014-03-03

