javascript - 生成環(huán)境出現(xiàn)Uncaught (in promise) 錯(cuò)誤
問(wèn)題描述
本地開(kāi)發(fā)不會(huì)出現(xiàn)這樣的錯(cuò)誤,但是npm run build后發(fā)到服務(wù)器上出現(xiàn)這樣的錯(cuò)誤
問(wèn)題解答
回答1:用的是axios發(fā)送http請(qǐng)求嗎?如果是的話(huà)
axios.get().then().catch()
記得加上最后的那個(gè).catch()
回答2:之所以出現(xiàn)Uncaught (in promise) 的錯(cuò)誤,最終的原因就是:『你的某個(gè)promise沒(méi)有加上catch語(yǔ)句』試著去排查下哪里的寫(xiě)法不完善。以下內(nèi)容摘自我的博客《Promise使用手冊(cè)》
我們都知道, Promise.reject返回了一個(gè)拒絕狀態(tài)的Promise對(duì)象. 對(duì)于這樣的Promise對(duì)象, 如果其后續(xù)then | catch中都沒(méi)有聲明onRejected回調(diào), 它將會(huì)拋出一個(gè) “Uncaught (in promise) …”的錯(cuò)誤.
如上圖所示, 原語(yǔ)句是 “Promise.reject(‘返回一個(gè)拒絕狀態(tài)的Promise’);” 其后續(xù)并沒(méi)有跟隨任何then | catch語(yǔ)句, 因此它將拋出錯(cuò)誤, 且該錯(cuò)外部的Promise無(wú)法捕獲.不僅如此, Promise之間涇渭分明, 內(nèi)部Promise拋出的任何錯(cuò)誤, 外部Promise對(duì)象都無(wú)法感知并捕獲. 同時(shí), 由于promise是異步的, try catch語(yǔ)句也無(wú)法捕獲其錯(cuò)誤.因此養(yǎng)成良好習(xí)慣, promise記得寫(xiě)上catch.
相關(guān)文章:
1. java servlet后臺(tái)導(dǎo)出上萬(wàn)條數(shù)據(jù)到excel,太慢!求解2. javascript - 一排三個(gè)框,各個(gè)框的間距是15px,距離外面的白框間距也是15px,這個(gè)css怎么寫(xiě)?3. mysql函數(shù)unix_timestamp如何處理1970.1.1以前的數(shù)據(jù)?4. 怎樣使留言的數(shù)據(jù)與登錄的用戶(hù)名,密碼保持一致(在數(shù)據(jù)庫(kù)上是一行的)。5. mysql money 插入數(shù)據(jù)為什么報(bào)錯(cuò)?6. java - 關(guān)于使用POI解析excel中的時(shí)間格的值7. html - 急求,能否用flex或者高端點(diǎn)的CSS來(lái)布局這個(gè)圖呢?不想用浮動(dòng)或定位了8. css如何實(shí)現(xiàn)兩欄布局,左邊固定寬度,右邊寬度自適應(yīng),且高度和瀏覽器當(dāng)前高度一致?9. javascript - vue-cli 發(fā)布之后,如何在接口地址中去掉在開(kāi)發(fā)環(huán)境中設(shè)置的跨域proxyTable配置10. 請(qǐng)問(wèn)永久和臨時(shí)重定向有什么區(qū)別
