angularJS服务的$q

来源:互联网 发布:软件壳 编辑:程序博客网 时间:2024/04/29 00:51

$q的服务,实际上是promise的一种实现方式,有点类似Jquery中的defer()延迟对象;
它实际上是对我们的异步操作进行了一些功能扩展;

我们看一下如下demo

<!DOCTYPE HTML><html ng-app="myApp"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>angularJS服务的$q</title><style>#parent div{ width:300px; height:500px; border:1px #000 solid; margin:20px;}#parent ul{ width:200px; position:fixed; top:0; right:0;}</style><script src="angular.min.js"></script><script>    var m1 = angular.module('myApp',[]);    m1.controller('Aaa',['$scope','$q',function($scope,$q){ //引入$q的服务        var dfd = $q.defer();//创建一个延迟对象,有了这个延迟对象之后        function show(){//有了这个延迟对象之后,我们就可以做一些延迟的处理啦,比如说我们写个show方法            setTimeout(function(){//假如说我们两秒钟之后做一个延迟处理                       dfd.reject();                //resolve()成功的时候调用的方法                //reject()失败的时候调用的方法                    //notify()时时的进行通知处理                //then()提供一种监听成功或失败的回调处理            },2000);            return dfd.promise;        }        show().then(function(){//调用函数回调成功或失败的回调            alert('成功');        },function(){            alert('失败');        });    }]);</script></head><body><div ng-controller="Aaa">   </div></body></html>
0 0
原创粉丝点击