• Promise浅析(day02)


    Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值.

    Promise 对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。
    它允许你为异步操作的成功和失败分别绑定相应的处理方法(handlers)。 
    这让异步方法可以像同步方法那样返回值,但并不是立即返回最终		执行结果,而是一个能代表未来出现的结果的promise对象
    

    方法

    Promise.all(iterable) [全部成功时返回]

    这个方法返回一个新的promise对象,该promise对象在iterable参数对象里所有的promise对象都成功的时候才会触发成功,一旦有任何一个iterable里面的promise对象失败则立即触发该promise对象的失败。
    这个新的promise对象在触发成功状态以后,会把一个包含iterable里所有promise返回值的数组作为成功回调的返回值,顺序跟iterable的顺序保持一致;
    如果这个新的promise对象触发了失败状态,它会把iterable里第一个触发失败的promise对象的错误信息作为它的失败错误信息。Promise.all方法常被用于处理多个promise对象的状态集合。(可以参考jQuery.when方法---译者注)
    

    Promise.race(iterable) [一个成功时返回]

    当iterable参数里的任意一个子promise被成功或失败后,父promise马上也会用子promise的成功返回值或失败详情作为参数调用父promise绑定的相应句柄,并返回该promise对象。
    

    Promise.reject(reason)

    返回一个状态为失败的Promise对象,并将给定的失败信息传递给对应的处理方法
    

    Promise.resolve(value)

    返回一个状态由给定value决定的Promise对象。如果该值是thenable(即,带有then方法的对象),返回的Promise对象的最终状态由then方法执行决定;
    否则的话(该value为空,基本类型或者不带then方法的对象),返回的Promise对象状态为fulfilled,并且将该value传递给对应的then方法。
    通常而言,如果你不知道一个值是否是Promise对象,使用Promise.resolve(value) 来返回一个Promise对象,这样就能将该value以Promise对象形式使用。
    

    上面所说的失败是指不符合业务逻辑的失败,即未得到预期参数的失败,所以resolve,reject的值都将返回到then中的第一二个回调。catch的话解决的是promise中的代码失败,即执行过程中发生错误,代码书写错误等

  • 相关阅读:
    Centos 6.9 安装 Redis 3.2.9
    CentOS下安装JDK的三种方法
    centos6.9(Linux系统)安装VMware tools教程
    VMWare安装Centos 6.9
    关于缓存中Cookie,Session,Cache的使用
    MVC控制器获取@Html.DropDownList值
    .net下的跨域问题
    IIS无法加载字体文件(*.woff,*.svg)的解决办法
    jQuery .attr("checked")得undefined 问题解决
    Apache和IIS服务器共存问题来自网上内容
  • 原文地址:https://www.cnblogs.com/jackson1/p/13285885.html
Copyright © 2020-2023  润新知