Ho visto risposte su StackOverflow in cui le persone suggeriscono di fornire una funzione di callback a un servizio AngularJS.Perché i callback vengono promessi Metodi `.then` e Anti-Pattern
app.controller('tokenCtrl', function($scope, tokenService) {
tokenService.getTokens(function callbackFn(tokens) {
$scope.tokens = tokens;
});
});
app.factory('tokenService', function($http) {
var getTokens = function(callbackFn) {
$http.get('/api/tokens').then (function onFulfilled(response) {
callbackFn(response.data);
});
};
return {
getTokens: getTokens
};
});
Questo mi sembra un anti-pattern. Il servizio $http
restituisce promesse e con i metodi .then
che eseguono le funzioni di callback sembra una malsana inversione di controllo.
Come fa un codice ri-fattore come questo e come si spiega perché il modo originale era non è una buona idea?
Basta dire alle persone di usare effettivamente le promesse invece di ignorarle. – SLaks
Ho trovato che usare 'promise' è un po 'salutare dato che ha la capacità di incatenarlo e avere il controllo della chiamata asincrona. –
Il problema principale è che con niente restituito in 'then()' non vi è alcun punto in cui richiamare errori in callback. Si rompe la catena di promessa – charlietfl