Rumah >hujung hadapan web >tutorial js >Sekiranya Anda Menggunakan Panggilan Balik dengan Janji AngularJS?

Sekiranya Anda Menggunakan Panggilan Balik dengan Janji AngularJS?

Barbara Streisand
Barbara Streisandasal
2024-11-09 20:22:02851semak imbas

Should You Use Callbacks with AngularJS Promises?

Penyongsangan Panggilan Balik dalam AngularJS: Anti-Corak

Dalam AngularJS, adalah amalan biasa untuk menghantar fungsi panggil balik kepada perkhidmatan yang mengembalikan Janji. Walau bagaimanapun, pendekatan ini boleh memperkenalkan anti-corak dan menghalang faedah Promises.

Contoh Anti-Corak:

Pertimbangkan kod berikut, di mana perkhidmatan getTokens menerima fungsi panggil balik:

...
getTokens: function(callbackFn) {
  $http.get('/api/tokens').then (function onFulfilled(response) {
    callbackFn(response.data);
  });
}
...

Pendekatan ini mempunyai beberapa keburukan:

  • Penyongsangan Kawalan: Fungsi panggil balik dilaksanakan dalam konteks perkhidmatan, menyongsangkan aliran kawalan dan menyukarkan untuk mengikuti kod.
  • Rangkaian Janji Patah:Panggilan balik menghalang Janji daripada dirantai kerana mengendalikan berbilang acara atau memanipulasi data mengikut turutan.
  • Kerumitan: Pengendalian panggilan balik yang eksplisit menambahkan kerumitan yang tidak perlu pada pangkalan kod.

Pemfaktoran Semula untuk Amalan Terbaik:

Untuk menyelesaikan anti-corak ini, faktorkan semula kod seperti berikut:

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

Dalam modul panggilan, gunakan Promise yang dikembalikan untuk mengendalikan keputusan:

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

Faedah Amalan Terbaik:

Mengguna pakai amalan terbaik ini menyediakan beberapa kelebihan:

  • Memelihara Janji Rantai: Janji kini boleh dirantai untuk melaksanakan berbilang operasi secara berurutan, meningkatkan kebolehbacaan dan kebolehselenggaraan kod.
  • Kod Ringkas: Mengalih keluar pengendalian panggilan balik yang jelas memudahkan pangkalan kod dan menghapuskan kemungkinan ralat.
  • Meningkatkan Kebolehujian: Janji menyediakan antara muka yang bersih untuk menguji operasi tak segerak, menjadikannya lebih mudah untuk mengesahkan kelakuan kod.

Atas ialah kandungan terperinci Sekiranya Anda Menggunakan Panggilan Balik dengan Janji 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