处理Angular.js承诺错误状态

时间:2016-04-22 15:27:07

标签: javascript angularjs angularjs-scope

我的代码是这样的,

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);
    });
});

所以当我用错误路径测试时,我明白了 服务器错误 ... 未定义

获取错误信息的正确方法是什么?

2 个答案:

答案 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);
    });
});

答案 1 :(得分: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);
});

希望有所帮助。

相关问题