Promise.reject 與throw:揭示差異
JavaScript 開發中常見的困境是理解Promise.reject 和throwing 之間的區別錯誤。雖然這兩種策略都可以用於處理錯誤,但在特定場景中會出現細微的差異。
在 Promise 回呼的上下文中,使用 throw 有效地發出錯誤訊號,並且以下 catch 處理程序將捕獲它。但是,當在 Promise 回呼之外工作時,如果使用 throw,則不會呼叫 catch 處理程序。為了解決這個問題,必須使用 Promise.reject。
考慮以下程式碼:
使用Promise.reject:
<code class="javascript">return asyncIsPermitted() .then(function(result) { if (result === true) { return true; } else { return Promise.reject(new PermissionDenied()); } });</code>
使用throw:
<code class="javascript">return asyncIsPermitted() .then(function(result) { if (result === true) { return true; } else { throw new PermissionDenied(); } });</code>
以上是何時使用 Promise.reject 而不是 Throw?的詳細內容。更多資訊請關注PHP中文網其他相關文章!