Rumah >hujung hadapan web >tutorial js >Mengapakah Panggilan Balik dalam Promise .then Methods merupakan Anti-Corak dalam AngularJS?

Mengapakah Panggilan Balik dalam Promise .then Methods merupakan Anti-Corak dalam AngularJS?

Patricia Arquette
Patricia Arquetteasal
2024-11-16 07:41:03861semak imbas

Why are Callbacks in Promise .then Methods an Anti-Pattern in AngularJS?

Mengapa Panggilan Balik daripada Janji .maka Kaedah adalah Anti-Corak

Soalan:

Adakah ia anti-corak untuk menyediakan fungsi panggil balik kepada perkhidmatan AngularJS dalam kaedah promise .then? Jika ya, bagaimanakah kod itu perlu difaktorkan semula dan mengapa?

Jawapan:

Faktor semula Kod:

Tukar kaedah getTokens dalam tokenService untuk mengembalikan janji secara langsung dan bukannya menerima a panggil balik:

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

Dalam pengawal, gunakan kaedah .then untuk merantai kejayaan/gagal pengendali:

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

Mengapa Cara Asal adalah Anti-Corak:

  • Menghalang rantaian pengendali janji selanjutnya. Yang asal kod menghalang rantaian tambahan .kemudian kaedah untuk pemprosesan selanjutnya bagi respons.
  • Menyongskan kawalan. Dengan menerima panggilan balik, kawalan memproses respons dipindahkan daripada modul pemanggil ke modul yang dipanggil , yang tidak sesuai.
  • Penggunaan janji yang tidak perlu. Walaupun perkhidmatan $http mengembalikan janji, kod asal menukarnya kembali kepada panggilan balik, menjadikan penggunaan janji berlebihan.
  • Potensi kekeliruan. Menggunakan janji sebagai panggilan balik memperkenalkan konsep yang tidak perlu ke dalam pangkalan kod dan mungkin sukar untuk ahli pasukan untuk faham.

Atas ialah kandungan terperinci Mengapakah Panggilan Balik dalam Promise .then Methods merupakan Anti-Corak dalam AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn