首頁 > web前端 > js教程 > 鍊式 Promise 如何處理和傳播拒絕?

鍊式 Promise 如何處理和傳播拒絕?

Linda Hamilton
發布: 2024-12-09 07:11:07
原創
998 人瀏覽過

How Do Chained Promises Handle and Propagate Rejections?

鍊式 Promise 未透過拒絕

在 Promise 鏈中,Promise 的解析取決於其錯誤處理函數如何回應拒絕。 .then() 方法為回呼函數的結果傳回一個新的 Promise。如果沒有提供成功或錯誤處理程序,結果將直接傳遞給下一個 Promise。

如果處理了錯誤,則產生的 Promise 將使用錯誤處理程序的傳回值來實現。要重新拋出錯誤並將其傳播到鏈上,請改為拋出 err。

在小部件商店範例中,當鏈中的 Promise 收到錯誤時,它應該向前拋出該錯誤,以確保後續的 Promise該鏈不會收到成功值。

在資料庫查詢鏈中,如果第一個查詢中發生錯誤,省略錯誤處理程序將允許鏈繼續,即使後續的Promise 可能不會收到

db.query({ parent_id: value }).then(function(query_result) {
    return db.put({
        parent_id: query_result[0].parent_id
    });
}).then(function(first_value_result) {
    return db.put({
        reference_to_first_value_id: first_value_result.id
    });
}.then(values_successfully_entered);
登入後複製

總之,為了防止鏈中的後續Promise 在發生拒絕後接收成功值,錯誤處理函數應該拋出錯誤或傳回被拒絕的Promise。

以上是鍊式 Promise 如何處理和傳播拒絕?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板