Обрабатывать состояние ошибки обещания Angular.js

0

Мой код такой,

app.controller('myController', function($scope, MyService, ...) {

    MyService.getInfoFromUrl('MyUrl').then(function(result) {
        console.log("Successfully get info from URL ...");
    }, function(error) {
        console.log("Server error ...");
        console.log(error);
    });
});

Поэтому, когда я тестирую его с помощью пути ошибки, я вижу ошибку сервера... Неопределенный

Какой правильный способ получить информацию об ошибке, пожалуйста?

  • 0
    это действительно ваш MyService .
Теги:
angularjs-scope

2 ответа

1
Лучший ответ

Я думаю, вам нужно обработать ошибку сервера в getInfoFromUrl(), а затем, когда в вашем обещании возникает ошибка, звоните -

getInfoFromUrl(){
    return new Promise(function(resolve,reject){
    //some code to get info
    if(noErrors){ 
        resolve(Info);   //This will return value to first callback
    else if(hasErrors){
        reject(error);   //This will throw error
    }
});
}
reject(error)

И тогда используйте код Wasiq Muhammad как есть.

MyService.getInfoFromUrl('MyUrl').success(function(result) {
    console.log("Successfully get info from URL ...");
}).catch(function(error){
    console.log("Server error ...");
    console.log(error);
});

Надеюсь, это поможет.

  • 0
    Добавить отклонить (ошибка) сработало, большое спасибо!
  • 0
    Йоу, чувак! Удачного кодирования ...
1

Попробуй это

app.controller('myController', function($scope, MyService, ...) {

    MyService.getInfoFromUrl('MyUrl').success(function(result) {
        console.log("Successfully get info from URL ...");
    }).catch(function(error){
        console.log("Server error ...");
        console.log(error);
    });
});
  • 0
    angular.js: 12477 TypeError: MyService.getInfoFromUrl (...). success не является функцией в новом <anonymous>. На самом деле мой пост плохой, MyService на самом деле фабрика, а не сервис. Но все же я не понимаю, почему это не нравится успех.
  • 0
    объединяя ответы от вас обоих, блок «тогда», «поймать» работал. До сих пор не уверен, почему «успех» не работает. Большое спасибо !
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню