Rumah >hujung hadapan web >tutorial js >Mengapa Panggilan Balik Memudaratkan dalam Rantai Janji AngularJS?
Mengapa Menggunakan Panggilan Balik dalam AngularJS Promise Chains Memudaratkan
Ia sering dicadangkan untuk menyediakan fungsi panggil balik kepada perkhidmatan AngularJS, seperti yang dilihat dalam coretan kod di bawah:
app.controller('tokenCtrl', function($scope, tokenService) { tokenService.getTokens(function callbackFn(tokens) { $scope.tokens = tokens; }); });
Walau bagaimanapun, amalan ini tidak digalakkan sebagai Anti-Corak. Perkhidmatan AngularJS seperti janji pengembalian $http dan melampirkan kaedah panggil balik pada kaedah .then mereka membentuk penyongsangan kawalan yang tidak diingini.
Refactoring
Untuk membetulkan isu ini, ubah suai kod seperti berikut:
app.controller('tokenCtrl', function($scope, tokenService) { tokenService.getTokens() .then(function(response) { $scope.tokens = response.data; }); });
Dalam perkhidmatan modul:
app.factory('tokenService', function($http) { var getTokens = function() { return $http.get('/api/tokens'); }; return { getTokens: getTokens }; });
Pemfaktoran semula ini menghapuskan fungsi panggil balik dan mengekalkan aliran kawalan yang diingini melalui kaedah .then.
Justifikasi untuk Pemfaktoran Semula
Panggilan balik seperti yang dilaksanakan dalam kod asal:
Atas ialah kandungan terperinci Mengapa Panggilan Balik Memudaratkan dalam Rantai Janji AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!