亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

javascript - 如果Promise物件reject自身
女神的閨蜜愛上我
女神的閨蜜愛上我 2017-06-14 10:53:56
0
2
823

程式碼:

            var der = {};

            var p = new Promise(function (resolve, reject) {
                der.reject = reject;
            })
            p.then((v) => {
                console.log('resolve');
                console.log(v);
            })
            p.catch(function (v) {
                console.log(v);
                console.log('reject');
                console.log(v);
            });

            der.reject(p);
            console.log(p);

火狐下方只輸出reject,chrome下正常輸入,然後會出現(xiàn)Uncaught (in promise)

請問,為什麼會出現(xiàn)未捕獲的異常呢,p的catch明明定義了,而且為什麼火狐下只輸出reject,輸出p的操作都無效果(實則應該也是出現(xiàn)異常未捕獲導致)


補充:
出現(xiàn)未捕獲的異常的原因是,雖然then中沒定義第二個函數(shù),但是仍然是運行then,並且將據(jù)因和狀態(tài)傳遞給返回的新的Promise對象,返回的Promise物件沒有catch回調(diào),所以報出了異常
但是firefox中輸出p無效果的原因仍然不清楚

女神的閨蜜愛上我
女神的閨蜜愛上我

全部回覆(2)
伊謝爾倫

雷雷

學霸

Promise相當於一個標準,符合標準的這種原型都可以稱為promise,在標準之外的特性不同瀏覽器可能不一樣,很顯然,火狐認為.catch和.then可以分別聲明,然後在運行時回應,也就是你上邊提到的沒報錯;而谷歌則認為.catch要連同.then中的異常一同處理,所以需要作用在.then之後的promise上。你將.then().catch連用,Google就不會報錯。深層的原因也有可能一個是基於事件,一個是基於輪詢導致的。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板