angular $q服务的用法】的更多相关文章

Promise是一种和callback有类似功能却更强大的异步处理模式,有多种实现模式方式,比如著名的Q还有JQuery的Deffered. 什么是Promise 以前了解过Ajax的都能体会到回调的痛苦,同步的代码很容易调试,但是异步回调的代码,会让开发者陷入泥潭,无法跟踪,比如: funA(arg1,arg2,function(){ funcB(arg1,arg2,function(){ funcC(arg1,arg2,function(){ xxxx.... }) }) }) 本身嵌套就已…
先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过Ajax的都能体会到回调的痛苦,同步的代码很容易调试,但是异步回调的代码,会让开发者陷入泥潭,无法跟踪,比如: funA(arg1,arg2,function(){ funcB(arg1,arg2,function(){ funcC(arg1,arg2,function(){ xxxx.... })…
promise 约定(promise)是一个对象,表示在未来时间点会发生的某件事情,约定可以是三种状态之一:等待.完成或拒绝.约定将从等待状态开始,然后可以转换为完成或者拒绝状态,一旦约定完成或者被拒绝,它就无法再改变状态.例如我们的$http服务返回的就是一个经过包装的promise对象. 可以看到,黑色部分圈起来的是基本的promise部分,此外$http还提供了success和error的语法糖,我们完全也可以直接使用then方法. var promise = ...; // 省略$htt…
用于理解$q服务 参考:http://www.zouyesheng.com/angular.html#toc39 广义回调管理 和其它框架一样, ng 提供了广义的异步回调管理的机制. $http 服务是在其之上封装出来的.这个机制就是 ng 的 $q 服务. 不过 ng 的这套机制总的来说实现得比较简单,按官方的说法,够用了. 使用的方法,基本上是: 通过 $q 服务得到一个 deferred 实例 通过 deferred 实例的 promise 属性得到一个 promise 对象 promi…
Q的实例化用法 #q1 里面的条件都是or的关系 q1=Q() q1.connector = 'OR' q1.children.append(('id',1)) q1.children.append(('id',3)) q1.children.append(('id',6)) #q2里面的条件都是or的关系 q2=Q() q2.connector = 'OR' q2.children.append(('c',2)) q2.children.append(('c',4)) q2.children.…
$q是做为angular的一个服务而存在的,只是对promise异步编程模式的一个简化实现版,源码中剔除注释实现代码也就二百多行,下面开始介绍$q的API. 一.defer对象(延迟对象)可以通$q.defer()获取,下面是defer对象的api: 1.方法 ——resolve(value):向promise对象异步执行体发送消息告诉他我已经成功完成任务,value即为发送的消息. ——reject(value):向promise对象异步执行体发送消息告诉他我已经不可能完成这个任务了,valu…
下面我们通过讲解$q的API让你更多的了解promise异步编程模式.$q是做为angularjs的一个服务而存在的,只是对promise异步编程模式的一个简化实现版,源码中剔除注释实现代码也就二百多行,下面开始介绍$q的API. defer对象(延迟对象)可以通$q.defer()获取,下面是defer对象的api:  方法: resolve(value):向promise对象异步执行体发送消息告诉他我已经成功完成任务,value即为发送的消息. reject(value): 向promise…
1. 创建一个Service,去服务器读取数据: // $q 是内置服务,所以可以直接使用 ngApp.factory('UserInfo', ['$http', '$q', function ($http, $q) { return { query : function() { var deferred = $q.defer(); // 声明延后执行,表示要去监控后面的执行 $http({method: 'GET', url: 'scripts/mine.json'}). success(fu…
angular中的$q是用来处理异步的(主要当然是http交互啦~). $q采用的是promise式的异步编程.什么是promise异步编程呢? 异步编程最重要的核心就是回调,因为有回调函数,所以才构成了异步编程,而回调有三个关键部分: 一是什么时候执行回调,二是执行什么回调,三是回调执行的时候传入什么参数. 就以最常见的jquery Ajax举例,发送一个请求后: 什么时候执行回调: 请求成功(或者失败)的时候 执行什么回调: 根据请求成功或者失败,执行相应的回调函数 回调执行的时候传入的什么…
服务可以再应用的整个生命周期内保持数据,不会在切换路由或者重新加载视图时被清楚掉(控制器只有在需要时才被实例化) 服务是一个单例对象,在每个应用中只会被实例化一次 服务在应用的生命周期内保存数据 angular.module('myApp') .factory('myService', [function(){ var store_id = null; function set_curr_storeid(id) { store_id = id; return; } function get_cu…