promise的reject出現斷點報錯,resolved,Paused on promise rejection

最近在項目中遇見一個 promise 使用方式的問題,大概需求是,頁面多個表單,必須同時通過之後,才能發起網絡請求; 驗證過程,報了一個reject()錯,谷歌瀏覽器報錯進入斷點調試模式。

錯誤如下:

在這裏插入圖片描述

問題原因:

如果在 Promise 處理異常之前就執行了 reject() ,就會認爲這個promise沒有處理異常的過程,然後就報錯了,原因如下。

  • (1)只要沒有在 Promise 的後面緊跟.catch或.then處理異常就會觸發這個錯誤機制。
  • (2)不能在同步過程中觸發 reject() ,因爲這個時候異常處理還沒有掛載到 promise 上,也就是說promise 不能立即執行 reject(),需要增加一個定時器,模擬異步調用解決這個問題。

代碼如下:

在這裏插入圖片描述

解決如下:

我代碼 new Promise() 裏面有涉及到element ui 表單驗證操作,可以也是一個 this.$refs[formName].validate() 這個方法也是一個 promise, 所以在下面對創建的每個 promise 實例,執行了result.then().catch() 實例化操作。

![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200421105528391.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NjQ4MTUx,size_16,color_FFFFFF,t_70

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章