0
乍一看,你似乎可以將jqXHR對象從jquery轉換爲ES6 Promise。但是,如果請求失敗,錯誤處理程序將進入無限循環,因爲傳遞給catch/error回調的參數是jqXHR本身,所以Promise被拒絕,並拒絕一個拒絕給它自身的可執行文件,導致無限循環。Promise.resolve on jqXHR ajax導致無限循環
將jqXHR轉換爲Promise而不會導致錯誤循環的最佳方法是什麼?
我想到的兩種可能的解決方案是以某種方式獲得原始的XMLHttpRequest並在失敗時拒絕承諾,或者將jqXHR包裝在另一個對象中,而不使用then方法。
雖然這兩個看起來都很尷尬?有沒有一種方法可以讓Promise跟隨其解析/拒絕的價值後續功能?還是不太理想,一種從jqXHR獲取原始XMLHttpRequest的方法?
這仍然得到一個無限循環,因爲響應參數是本身傳遞到錯誤回調的jqXHR。拒絕試圖追隨可敬的人。 – Thayne
你是對的!請看我編輯的答案。現在'error'函數得到三個參數而不是一個。 –