$q defer
实际应该是这样更好理解
把,asyncGreet换成实际的http请求SyncRequest。
如果我们多个请求那么 就是多个 promise我们要么就是链式then,要么就是$q.all
可以根据需要进行选择使用。
/***
* promise对象和then执行函数(我这样称呼),根据输出的结果我们可以看出,当我们在调用的
* 时候执行可以看作是两部分,第一:promise,第二then();可以说是先要执行这个promise,然后执行then
* 对promise进行解析和输出
* 但是对于函数 asyncGreet 内部来说,他还是一个异步的,由‘Start3’和‘Start4’ 我们可以看出,这里先执行了
* ‘Start3’紧接着执行了‘Start4’,对于定时器settimeout,这个步骤已经绕过去了,2秒后,settimeout开始执行
* 那么这里面defered不能和一般的 console这个相对比,为什么?下面会说,
* 在settimeout总执行我们暂且可以看作是顺序执行。对于defered来说,他的notify 必须是在resolve,和reject
* 之后其实这个很简单理解,我们可以把 resolve,和reject 理解未deferred中的 ‘return’。
* 所以notify不能在return之后。对于 这个defered的返回的处理自然是在then中的函数,
* 有一个值得注意的是then中所有希望的输出顺序来说,‘Start1’并不是第一个输出的,而是notify先输出,
* 这就是上面我为什么说settimeout中deferred和console的执行不能对比,因为就输出而言我们也可以猜测
* notify是在最先执行的,只不过放到了deferred这个对象中了,我们并没有看到(这个并不影响我们的理解和后续处理)
* 所以notify的回掉函数是最先执行的,后续的resolve和reject其实是平级的,这两个回掉函数中则是顺序执行
*
*
*/
随机推荐
- Spring源码分析(1)容器的基本实现——核心类介绍
bean是Spring中最核心的东西,因为Spring就像是个大水桶,而bean就像是容器中的水,水桶脱离了水便也没什么用处了,那么我们先看看bean的定义. public class MyTestB ...
- SpringCloud学习(六)分布式配置中心(Spring Cloud Config)(Finchley版本)
在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理, ...
- Angular ViewChild & ViewChildren
基础 ViewChild ViewChild 装饰器用于获取模板视图中的元素或直接调用其组件中的方法.它支持 Type 类型或 string 类型的选择器,同时支持设置 read 查询条件,以获取不同 ...
- 关于keildownload键变为灰色不能使用的问题
有时候 有些朋友可能会遇到这样的问题 突然间download键变成灰色,导致不能将程序下载到芯片中 遇到中问题如果不是软件卡了 那就是可能一不小心点错了,关掉了下载条件“约定” 可以点“魔术棒” ...
- day26 封装、多态、内置函数、反射、动态导入
今日内容 1.封装 什么是封装? 封装从字面意思上看就只将某种东西封起来装好,当我们代码中的某些方法与属性不想让外界进行访问时,就对这些属性进行特殊的处理,使这种属性或者方法不能被外界直接进行访问或者 ...
- poj1905 Expanding Rods(二分)
题目链接:https://vjudge.net/problem/POJ-1905 题意:有一根长len的木棍,加热了n度,长度会膨胀为len*(1+n*c),c为膨胀系数.现在把这根木棍夹在两堵墙之间 ...
- @click.prevent.self和@click.self.prevent区别
注意:prevent 阻止的是“跳转事件”而不是“弹出警告” v-on:click.prevent.self的demo如下: <div id="box"> <di ...
- windows环境下安装selenium+python
selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: * 免费,也不用再为破解QTP而大伤脑筋 * 小巧,对于不同的语 ...
- paramiko-ssh-秘钥认证实例
import paramiko private_key = paramiko.RSAKey.from_private_key_file('id_rsa.txt') #创建ssh对象 ssh =para ...
- 项目实践 hrm项目的设计过程
人事管理系统的设计过程 一.数据库表和持久化类 1.1 进行需求分析,根据功能模块设计数据库表 1.2 设计持久化实体 面向对象分析,即根据系统需求提取出应用中的对象,将这些对象抽象成类,再抽 ...