$q服务

<html ng-app="myApp">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>
</head>
<body>
<div ng-controller="myctrl">
    {{test}}
</div>
<script type="text/javascript">
    var myAppModule = angular.module("myApp",[]);
    myAppModule.controller("myctrl",["$scope","$q",function($scope, $q){
        $scope.test = 1;//这个只是用来测试angularjs是否正常的,没其他的作用

        // defer()用于创建一个deferred对象,这个对象可以执行几个常用的方法,比如resolve,reject,notify等

        var defer1 = $q.defer();//通过$q服务注册一个延迟对象

        var promise1 = defer1.promise;//通过延迟对象,可以得到一个承诺promise,而promise会返回当前任务的完成结果


        promise1
            .then(function(value){
                console.log("in promise1 ---- success");
                console.log(value);
            },function(value){
                console.log("in promise1 ---- error");
                console.log(value);
            },function(value){
                console.log("in promise1 ---- notify");
                console.log(value);
            })
            .catch(function(e){
                console.log("in promise1 ---- catch");
                console.log(e);
            })
            .finally(function(value){
                console.log('in promise1 ---- finally');
                console.log(value);
            });

        defer1.resolve("hello");
        // defer1.reject("sorry,reject");
    }]);
</script>
</body>
</html>

  

posted @ 2020-08-12 17:10  sct春天  阅读(455)  评论(0)    收藏  举报