zoukankan      html  css  js  c++  java
  • Promise基础用法2

    Promise的静态方法

    Promise.resolve()

    Promise.resolve()能快速的将一个传入的值转为Promise对象

      等价于  

    如果传入的是一个 Promise 对象,Promise.resolve 方法原样返回
    如果传入的是带有一个跟 Promise 一样的 then 方法的对象, Promise.resolve 会将这个对象作为 Promise 执行。

    Promise.reject()

    Promise.reject()能快速创建一个必定失败的promise对象。Promise.reject 传入任何值,都会作为这个 Promise 失败的理由。

     Promise的并行执行

     Promise.all

    在实际工作中,如果由多个没有依赖的请求,我们可以采用并行处理的方式,但是若某一个请求需要等待这几个并行的请求全部处理完成后才能触发,我们可以定义一个累加的变量,当变量的值等于请求的个数时,就代表了请求全部完成。在promise中,可以使用Promise.all()方法解决这种问题。

     Promise.race

     Promise.race同样也能将多个promise组合成一个全新的promise对象,但是Promise.all()是需要等待所有任务结束,而 Promise.race则只会等待所有任务中的第一个结束的任务即可,可以用于超时控制。

     Promise执行时序

    • setTimeout 的回调是 宏任务,进入回调队列排队
    • Promise 的回调是 微任务,本轮调用末尾直接执行

      

  • 相关阅读:
    git 学习
    ruby on rails 把阿里云上的图片资源转移到七牛云上写的一个task 文件 自动转移
    修改mysql的默认编码
    ruby on rails 安装中遇到的一些问题
    unity打包资源格式全解析
    unity打包全过程解析
    mmorpg手游中的战斗系统
    在线调试lua原型设计
    lua特性纪要
    软件开发中的哲学问题
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/14548106.html
Copyright © 2011-2022 走看看