首頁 >web前端 >js教程 >為什麼在 Promise `.then` 方法中使用回呼是一種反模式?

為什麼在 Promise `.then` 方法中使用回呼是一種反模式?

Barbara Streisand
Barbara Streisand原創
2024-11-14 14:40:02737瀏覽

Why is Using Callbacks in Promise `.then` Methods an Anti-Pattern?

在Promise .then 方法中使用回調:反模式

提供給AngularJS 服務回呼函數的實作片段,如您提供的程式碼可能看起來很方便,但它遵循反模式。這種方法破壞了 Promises 的非同步程式設計流程和控制反轉。

為什麼它是反模式?

  • 中斷鏈: Promise .then 方法可讓您連結多個非同步操作。透過使用回調,您將失去在後續操作中輕鬆繼續處理一個操作的結果的能力。
  • 控制反轉: 原始程式碼透過傳遞從消費者模組到提供者模組的回調。這使得管理和調試執行流程變得更加困難。
  • 不必要的 Promise 複雜性: Promise 提供了一種處理非同步操作的機制。透過將 Promise 包裝在回調中,您會引入不必要的複雜性並混淆程式碼的意圖。

重構解決方案:

重構程式碼並消除這些問題,您可以使用不帶調函數的普通.then 方法:

var getTokens = function() {
  return $http.get('/api/tokens');
};

在消費者模組中,您可以直接使用.then來鍊式操作:

yourModule.getTokens()
  .then(function(response) {
    // handle it
  });

重構程式碼的好處:

  • 維護連結:透過從Promisekens 函數傳回,您可以輕鬆連結後續操作。
  • 保留控制:消費者模組不依賴回呼來控制非同步操作的執行。
  • 簡化程式碼:重構的程式碼簡化了非同步處理過程,使其更容易理解並維護。

以上是為什麼在 Promise `.then` 方法中使用回呼是一種反模式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn