理解Q.defer() 傳回的Promise 之間的差異.promise 和Q.Promise 可能具有挑戰性。這個問題旨在澄清這兩種方法之間的差異。
歷史上,defer API 用於抽象 Promise 狀態控制和流程。這涉及創建一個可以解決的延遲,以及一個可以返回的相關承諾。然而,Promise 建構函數出現了更現代的解決方案。
關鍵區別在於拋出安全。雖然 defer API 同步運作並且需要明確錯誤處理,但 Promise 建構函數可確保 Promise 鏈內的拋出安全性。這意味著異常會轉換為拒絕,從而確保一致且可靠的錯誤處理。
考慮以下程式碼片段:
<code class="javascript">var d = Q.defer(); setTimeout(function(){ d.resolve(); }, 1000); return d.promise;</code>
可以使用以下程式碼重寫Promise 建構函式為:
<code class="javascript">return new Promise(function(resolve, reject){ setTimeout(resolve, 1000); });</code>
以上是Q.defer().promise 與 Q.Promise:您應該選擇哪一個來進行可靠的錯誤處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!