Folks,erreurs de manipulation dans AngularJS
j'ai écrit un service qui va chercher les données de mon serveur de la façon suivante:
myApp.factory('CommonHttpService', function($http, $q){
var myUrl;
return{
query: function(tableName){
//Forming the URl
myUrl = baseUrl + "?table=" + tableName;
// Create a deferred object
var deferred = $q.defer();
//Calling web api to fetch all rows from table
$http.get(myUrl).success(function(data){
deferred.resolve(data);
}).error(function(){
// Sending a friendly error message in case of failure
deferred.reject("An Error occured while fetching items");
});
// Returning the promise object
return deferred.promise;
}});
Mon contrôleur appelle comme ceci:
// Get entire list
CommonHttpService.query(tableName).then(function(data) {
$scope.list = data;
});
Donc, ma question est, dans tout ce système de choses, je ne suis pas sûr de savoir comment ou comment gérer les erreurs. Est-ce que l'erreur est traitée dans deferred.reject() .. si oui, comment?
Ou est-il géré après le .then() dans le contrôleur.
Idéalement j'exposerons une sorte de message à l'utilisateur comme « Aucune donnée disponible » et l'envoi itnernally les détails d'erreur à l'administrateur ou quelque chose
Ceux qui l'ont fait, cela avant et avoir des petits conseils veuillez les transmettre.
Merci à l'avance.
Merci Ajay .. quel but deferred.reject() servir dans toute l'équation ci-dessus signifie que votre – runtimeZero
deffered.reject promesse a été rejeté qui signifie que la promesse a retourné une erreur, donc la fonction d'erreur de then() sera exécutée si vous faites deffered.resolve qui signifie que la promesse a été résolue avec succès et le code de la fonction sera exécuté –
donc l'erreur (function() {. .} dans http.get est également exécuté et la fonction d'erreur après then() est également exécutée Quel est le tout but d'avoir deux fonctions exécutent sur erreur? – runtimeZero