AngularJs - как перейти от $ .ajax к $ http - PullRequest
0 голосов
/ 10 января 2019

Для целей тестирования (для использования $ httpBackend) я хочу преобразовать свою Службу в использование $ http вместо jQuery $. Ajax .

Мой текущий сервис выглядит следующим образом

app.service('myService', function() {
  return { 
    getUserById: function(id) {
      return $.ajax({
        url: ...,
        type: 'GET'
        ...
      })
      .fail(function()){}
});

Итак, служба обрабатывает сбой , и я позволяю клиенту, который вызывает метод, обрабатывать все остальное, как показано ниже:

myService.getUserById(123)
  .done(function(data){
    // use data
  })
  .always(function()){
   // do stuff
  }

Теперь, используя Angular $ http Я не уверен, как воспроизвести такое же поведение. Это использование сайта AngularJS :

$http({
  method: 'GET',
  url: '/someUrl'
})
.then(successCallback, errorCallback);

Как я могу "разделить" функции успешного и обратного вызова ошибок между клиентом и службой?

1 Ответ

0 голосов
/ 11 января 2019

Ваш сервис будет выглядеть примерно так:

app.service('myService', function() {
  return { 
    getUserById: function(playerId){
     return $http.get('/someUrl/' + playerId, config).then(
      function(res){
       // handle any factory / decorating logic
       return res;
      }),
      function(err){
       //handle error
       return "error"; 
      }
    }
 }
});

Код клиента будет выглядеть так:

myService.getUserById(123).then(
 function(success){
  // use data
 },
 function(error){
  // handle error
 }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...