zoukankan      html  css  js  c++  java
  • Promise/A+规范

    1.1.1 Promise/A+规范

    规范出现的原因

    1、 我们不知道异步请求什么时候返回数据,所以我们就需要些回调函数。但是在某些情况下我们需要知道数据是在什么时候返回的,然后进行一些处理。

    2、 当我们在异步回调里面处理的操作还是异步操作的时候,这样就形成了异步回调的嵌套

    3、 正是为了杜绝以上两种情况的出现社区出现了Promise/a+规范

    规范的内容是什么

    1、 不管进行什么操作都返回一个promise对象,这个对象里面会有一些属性和方法(这个效果类似于jquery中的链式编程,返回自己本身)

    2、 这个promise有三种状态

    Unfulfilled(未完成,初始状态)

    Fulfilled(已完成)

    Failed(失败、拒绝)

    3、 这个promise对象的使用时通过then方法进行的调用

     

    Promise的实现

    因为他只是一个规范所以在不同的框架或者平台下有不同的实现

    Angular$q服务

    Nodeq模块,cothen

    Es6:Promise,  yield

    Es7:async  await

    怎么对promise对象的状态进行改变那?

    1、 通过$q服务的deffer方法定义出来一个延迟对象。

     

    2、 这个延迟对象都有三个方法

    (1) resolved方法当数据请求成功的时候调用参数是成功返回的数据对象,把promise对象Unfulfilled状态改为fulfilled状态。

    (2) rejected方法当数据请求失败的时候调用参数是失败的原因,把promise对象Unfulfilled状态改为failed状态。

    (3) 怎么知道在promise中调用哪个回调函数那就是通过promise对象的状态进行判断的

     

    Promise/A+规范简介

    http://www.jb51.net/article/50725.htm

    Promise/A+规范表现形式:

    1、可以通过链式编程的方式对异步操作进行同步处理

    2、上一个操作的输出值是下一个操作的输入值

    $http配合$q的使用

     

    controller中使用

     

    1.1.2 $q服务

    $q服务的使用:

    http://blog.csdn.net/renfufei/article/details/19174015

    $q服务使用步骤:

    1、首先要子啊factoruy中注入$q服务

    2、在Factory中使用如下图

     

    3、在controller中使用

     

    4把异步变为同步的操作上一个操作的输入时下一个操作的输入

     

  • 相关阅读:
    Angular--ui-router的使用
    一个简单的俄罗斯方块游戏脚本
    c中使用gets() 提示warning: this program uses gets(), which is unsafe.
    最短路径之Floyd算法
    动态规划求最大子序列
    Mac上编译C++报错
    nginx location匹配规则
    nginx配置入门
    拿什么守护你的Node.JS进程: Node出错崩溃了怎么办? foreverjs, 文摘随笔
    ASP.NET 上的 Async/Await 简介
  • 原文地址:https://www.cnblogs.com/qq666666/p/7476292.html
Copyright © 2011-2022 走看看