javascript - Angular js 初始化 $http 然后函数在任何情况下都可以工作

标签 javascript angularjs

这是我最初的 Angular 函数。我正在设置错误的 http 地址和工作 http 地址,但在任何情况下都可以工作 then 功能。如果我设置了错误的http地址,它应该是处理catch函数。这是working demo .

(function () {

    loadAppSettings().then(function () {
        alert(1)
    }).catch(function(){
            alert(0)
    });

    function loadAppSettings() {
        var $http = angular.injector(["ng"]).get("$http");

        return $http.get("oops").then(
            function (response) {
                angular.module("app").constant("appSettings", response.data);
            }
        ).catch(
            function (errorResponse) {
                console.error("app settings couldn't load.")
            }
        );
    }
})();

最佳答案

您使用哪个版本的 AngularJS? 因为,在我看来,以前的做法是:

$http.get('/someUrl').success( function( data, status, headers, config ){
    // code in case of success
}).error( function( data, status, headers, config ){
    // code in case of error
});

(参见 1.4.3 $http documentation )

新方法(自 1.4.4 起)是:

$http.get('/someUrl').then( function( response ){
    // code in case of success
}, function( response ){
    // code in case of error
});

(参见 1.4.4 $http documentation )

关于javascript - Angular js 初始化 $http 然后函数在任何情况下都可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34352304/

相关文章:

javascript - 如何在控制台识别 XPage 错误

javascript - Stamplay JS SDK - 根据当前用户返回集合中的项目

javascript - 为什么 Angular-Promise-Tracker 不适合我?

javascript - 通过 AngularJS 中的路径位置获取 Controller

javascript - 在没有 new 运算符的情况下使用 $resource 时出现问题

ruby - 在 Sinatra 服务器上使用 Protractor 测试 Angular?

javascript - 在 Phonegap 或 Cordova 中发送多条短信

javascript - 如何使这 3 个部分具有视差滚动?

javascript - React Router 更改 URL,但 BrowserRouter 不更改查看的组件

javascript - 在函数内动态创建多个函数