实际应该是这样更好理解

把,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其实是平级的,这两个回掉函数中则是顺序执行
*
*
*/

随机推荐

  1. Array.prototype.filter()

    1. filter() 方法:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素 ——filter() 不会对空数组进行检测 ——filter() 不会改变原始数组 2. 语法: ...

  2. android#boardcast#发送自定义广播

    广播主要分为两种类型,标准广播和有序广播,通过实践的方式来看下这两种广播具体的区别. 一.发送标准广播 在发送广播之前,我们还是需要先定义一个广播接收器来准备接收此广播才行,不然发出去也是白发.因此新 ...

  3. Java 基础篇之lambda

    Lambda 示例 public interface Eatable { void taste(); } public interface Flyable { void fly(String weat ...

  4. JMeter-- ThreadGroup原理分析

    JMeterEngine会驱动JMeter ThreadGroup启动Test Threads 执行测试,其本身也是一个Runnable,这里把测试驱动(JUnit或者其他类似main之类的)看作主线 ...

  5. Linux三剑客之grep常用参数详细总结

    三剑客grep总结 grep  : Linux三剑客老三      过滤需要的内容 参数: grep一般常用参数: -a :在二进制文件中,以文本文件的方式搜索数据 -c :计算找到 ’ 搜索字符串 ...

  6. spark-scala-java实现wordcount

    引入:spark-scala-java实现wordcount 1.spark-scala实现wordcount package com.cw.scala.spark import org.apache ...

  7. 骨牌摆放方案数n*m(状压DP)

    题意:https://www.nitacm.com/problem_show.php?pid=1378 如题. 思路: 从第一行for到最后一行,枚举每一行的所有状态,进行转移,注意答案是dp[最后一 ...

  8. VUE前后台分离

    VUE前后台分离 配置js环境 jQuery >: cnpm install jquery vue/cli 3 配置jQuery:在vue.config.js中配置(没有,手动项目根目录下新建) ...

  9. ZOOKEEPER进阶

    集群个数: 2n+1,因为集群当宕机大于等于二分之一的机子时,集群选举会失败.故 2n+1台机器和3n台机器可靠性相同 Leader的作用: 为了实现各个节点数据的一致性,需要一个负责协调数据同步的操 ...

  10. Fonour.AspnetCore 生成SQL SERVER数据库

    Install-Package EntityFramework Add-Migration InitialCreate Update-Database