$q的一共有四个api:

1.$q.when(value, successFn, errorFn, progressFn),返回值为一个promise对象

--value可以是一个任意数据,也可以是一个promise对象:

如果是任意数据的情况,则直接调用successFn的函数,所以后两个参数没有写的意义。
var a=$q.when(“something”,function(data){

 console.log(data)      //something
  return data;
})
a.then(function(data){console.log(data)    //something这里的值取决于successFn的返回值,如果没有返回值,则这个值为undefined
})

1 如果是promise的情况
2 var a=$q.when("apple"); //a是一个promise对象
3 $q.when(a,function(data){
4   console.log(data)   //apple  这个值跟a这个promise对象的then方法中successFn,errorFn,processFn的入参一一对应
6 })

2,$q.reject(reason),返回值为一个promise对象

 1 var a=$q.reject("no happy")  //a为一个promise 对象
 2 a.then(function(data){
 3   console.log(data)     //根本无任何意义
 4 },function(data){
 5   console.log(data)    // no happy
 6 })
 7 因为reject 只会触发errorFn这个函数,所以以上方法也可以这么写:
 8 var a=$q.reject("no happy")  //a为一个promise 对象
 9 a.catch(function(data){
10   console.log(data)     //no happy
11 })
12 备注:如果传入的不是"no happy",而是一个promise对象,那么    a.catch(function(data){
13   console.log(data) //data为a
14   a.catch(function(data){
15     console.log(data)  // no happy
16  })
17 })

备注:$q.reject跟$q.when对比,返回的promise对象的then方法中被触发函数的入参,前者取决于$q.reject(value)的value,后者取决于$q.when()的第二三四个参数(函数)的返回值。

3.$q.all([promise1, promise1]) 接受一个包含若干个 promise 的数组,返回一个promise对象,返回的promise的progressFn并没有用;

等所有的promise resolve后,其本身resolve包含上述结果的数组[data1,data2]

var a=$q.when("hello");
var b=$q.when("world");
$q.all([a,b]).then(function(data){console.log(data)   //["hello","world"]
})

如果上述 promise 有一个 reject, 那么$q.all() 会把这个 rejected promise 作为其 rejected promise (只有一个哦)

var a=$q.when(“hello”);
var b=$q.reject("world");
$q.all([a,b]).then(function(data){console.log(data)  //没有任何意义
},function(data){console.log(data)  //world
})

4.$q.deffer()  返回一个deferred对象。

这个用的比较普遍,不多说了

转载于:https://www.cnblogs.com/fxqblog/p/7086128.html

angular中的$q服务相关推荐

  1. promise和Angular中的 $q, defer

    在ES6语法中,新出了promise构造函数, 可用来生成promise实例. Promise对象: 代表了未来某个将要发生的事件(通常是一个异步操作).有了promise对象, 可以将异步操作以同步 ...

  2. angular中的$q使用详解

    AngularJS 中的Promise --- $q服务详解 先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQ ...

  3. angular的$q服务和promise模式

    此承诺/延迟(promise/deferred)实现的灵感来自于 Kris Kowal's Q CommonJS Promise建议文档 将承诺(promise) 作为和 异步执行操作(action) ...

  4. Angular中ngCookies模块介绍

    1.Cookie介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短 ...

  5. AngularJS 中的Promise --- $q服务详解

    先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过 ...

  6. Angular 中的依赖注入link

    Angular 中的依赖注入link 依赖注入(DI)是一种重要的应用设计模式. Angular 有自己的 DI 框架,在设计应用时常会用到它,以提升它们的开发效率和模块化程度. 依赖,是当类需要执行 ...

  7. angular中的依赖注入

    依赖项是指某个类执行其功能所需的服务或对象.依赖项注入(DI)是一种设计模式,在这种设计模式中,类会从外部源请求依赖项而不是创建它们. Angular 的 DI 框架会在实例化某个类时为其提供依赖.你 ...

  8. Angular中怎样通过localStorage实现数据持久化-实现存储搜索历史为例

    场景 Angular介绍.安装Angular Cli.创建Angular项目入门教程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detail ...

  9. angular routerlink传递参数_[翻译]在 Angular 中使用 async-await 特性

    在 Angular 中使用 async-await 特性 原文链接: https://medium.com/@balramchavan/using-async-await-feature-in-ang ...

  10. 简述angular中constant和$filter的用法

    这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [简述angul ...

最新文章

  1. 关于RelativeLayout设置垂直居中对齐不起作用的问题
  2. c++ softmax sigmoid
  3. python编程软件在哪里下载-Thonny(Python编程工具)
  4. 从 wiscKey 看 LSMtree 的不足
  5. MaxCompute实战之数据存储
  6. sql中毫秒数与格式化时间的转换
  7. 10.27大视野月赛翻车实况
  8. VBA的表单控件初接触(2):ActiveX控件的基础功能和基础代码
  9. 【博弈论】耶鲁大学公开课--博弈论Problem Set 1--Solution
  10. Keil 5(C51, MDK) 官方下载方法
  11. 谷歌地图的标记样式_如何为Google地图设置样式
  12. 大数据查询与处理Pig培训:大数据查询处理技术解析
  13. 数字摄像头接口DCMI
  14. 开源主流分布式文件系统简单介绍
  15. 2018年的第一篇文章(福利篇)
  16. html报告致谢,论文致谢优秀范文(精选10篇)
  17. 裁员狂潮席卷硅谷:Meta史上最大规模裁员将至,英特尔被曝裁掉数千人
  18. 一行代码就能使用PYTHON开发的小游戏
  19. python效率计算-提高python中重心坐标计算的效率
  20. while 循环和 for 循环

热门文章

  1. must be str,not int
  2. python程序语言二级教程_计算机二级python学习教程(2) python语言基本语法元素...
  3. 机器学习概念篇:监督学习、过拟合,正则化,泛化能力等概念以及防止过拟合方法总结
  4. 解析几何 | 吕子根 设三平行平面 $\pi_i:\ Ax+By+Cz+D_i=0\,(i=1,2,3),L,M,N$ 依次是平面 $\pi_1,\pi_2,\pi_3$ 上的任意点,求 $\tria
  5. default在php定义什么,default(T)的含义
  6. Raki的读paper小记:Bipartite Flat-Graph Network for Nested Named Entity Recognition
  7. 炼丹中遇到的一些BUG
  8. 快速突破面试算法之数组与矩阵篇
  9. 24.两两交换链表中的节点(力扣leetcode) 博主可答疑该问题
  10. 5年级用计算机器探索规律,《小数除法》用计算器探索规律