首頁 > web前端 > js教程 > Angular 6 中等待 Promise 鏈是否有程式碼異味?

Angular 6 中等待 Promise 鏈是否有程式碼異味?

DDD
發布: 2024-11-20 03:02:02
原創
339 人瀏覽過

Is Awaiting a Promise Chain in Angular 6 a Code Smell?

等待 Promise 鏈:這是一個陷阱嗎?

在Angular 6 中,建議開發者不要使用以下程式碼:

await someFunction().then(result => {
    console.log(result);
});
登入後複製

關心的不是等待Promise 鍊是沒有用的-someFunction() 確實回傳一個Promise,兩者都可以片段的工作原理相同。問題出在其他地方。

混亂是由混合非同步程式設計風格引起的。 ES2017 中引入的非同步函數引入了await 關鍵字。當await 在非同步函數中使用時,它會暫停函數的執行並等待promise 解析。這簡化了非同步編程,使閱讀和理解程式碼變得更加容易。

另一方面,承諾鍊是一種較舊的非同步程式設計方法。它涉及使用 .then() 將多個 Promise 連結在一起。雖然這種方法仍然有效,但與await混合使用時可能會造成混亂。

例如,如果您想在 console.log() 調用的位置添加另一個 Promise 呼叫或有條件地從函數返回,語義變得不清楚。您可以像在函數中的其他地方一樣在回調中使用await嗎?您需要從 .then() 回呼回傳結果嗎?是否有可能從外部函數返回?

為了避免這些複雜性,建議堅持一種非同步程式設計風格,最好使用await 來保持一致性。透過這樣做,您可以簡化程式碼並降低引入錯誤的風險。更簡潔乾淨的版本是:

const result = await someFunction();
console.log(result);
登入後複製

以上是Angular 6 中等待 Promise 鏈是否有程式碼異味?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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