首頁  >  文章  >  web前端  >  為什麼在 Promise `.then` 方法中使用回呼是反模式?

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

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

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
  });

重構程式碼的好處:

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

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

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