搜尋

首頁  >  問答  >  主體

javascript - 產生環境出現Uncaught (in promise) 錯誤

#本地開發不會出現這樣的錯誤,但是npm run build後發到伺服器上出現這樣的錯誤

大家讲道理大家讲道理2749 天前559

全部回覆(2)我來回復

  • 滿天的星座

    滿天的星座2017-05-16 13:30:00

    用的是axios發送http請求嗎?如果是的話

    axios.get().then().catch()

    記得加上最後的那個.catch()

    回覆
    0
  • 为情所困

    为情所困2017-05-16 13:30:00

    之所以出現Uncaught (in promise) 的錯誤,最終的原因就是:『你的某個promise沒有加上catch語句』
    試著去排查下哪裡的寫法不完善。
    以下內容摘自我的部落格《Promise使用手冊》


    我們都知道, Promise.reject返回了一個拒絕狀態的Promise對象. 對於這樣的Promise對象, 如果其後續then | catch中都沒有聲明onRejected回調, 它將拋出一個“Uncaught (in promise) …”的錯誤.

    如上圖所示, 原語句是“Promise.reject('返回一個拒絕狀態的Promise');” 其後續並沒有跟隨任何then | catch語句, 因此它將拋出錯誤, 且該錯外部的Promise無法捕獲.
    不僅如此, Promise之間涇渭分明, 內部Promise拋出的任何錯誤, 外部Promise對像都無法感知並捕獲. 同時, 由於promise是異步的, try catch語句也無法捕獲其錯誤.
    因此養成良好習慣, promise記得寫上catch.

    回覆
    0
  • 取消回覆