promise

prmise

定义:Promise是ES6中提供的一个异步编程的解决方案,Promise本身是一个构造函数

1 promise 程序执行的特点

  • 1: new Promise中的回调函数是同步执行的
  • 2: 原型方法的回调函数,都是异步执行的, 属于异步消息队列中的微任务.

2 promise有三种状态

  • pending 正在进行
  • resolve/ fulfilled 已接收(已成功)
  • reject 已拒绝(已失败)

promise api 的分类

  • 原型api
  • 静态api
  • 所有的api执行后返回值都是 新的api实例 只要是promise实例 就可以使用原型方法
  • 静态方法: 只能同构Promise构造函数使用

原型方法

原型方法,通常是由promise实例对象触发

分类

  • then 监听primise实例状态的变更, 主要监听变为已接收
  • catch 监听promis实例 已拒绝的状态
  • finally 监听链式调用中最后的一个状态 //不管promise最后的状态如何,在执行完then或者catch指定的回调函数后,都会执行finally方法指定的回调函数

原型方法是链式调用,原型方法的callback 是异步执行,属于微任务

.thenCall

  • 1:触发当promise状态变为fullfilled
  • 2:形参来源 resolve函数实参 或者上一个then return

静态方法

  • Promise.all( ) 同时监听多个promise实例的状态变更,所有的promise都变为fulfilled(已接受) 执行 all-then-callback
  • 我常用于处理并发业务.例如,同时发送多个请求,等所有请求成功后在处理.
  • 多张图片上传

Promise.all()捕获reject,并不是绝对的.如果单个(自身)的promiseprmise中;捕获了catch, Promise.all 不会捕获catch

Promise.all()
参数:数组,数组元素是promise实例
返回:新的promise

.thenCallback

1:所有的promise都变为resolve
2:形参 数组,数组元素resolve实参
  • Promise.race()
    监听多个promise实例状态,第一个发生状态变更的,如果是fullde(已接收),执行race-then-callback

  • Promise.any()
    监听多个promise实例的状态,只要有任何一个,状态变为fullfilled(已接收) 执行 any-then-callback

  • promise.resolve()
    相当于new Promise中执行resolve

  • Promise.reject()
    相当于new Promise 执行reject

promise应用

只要是异步程序都可以使用promise
解决异步bug,—>异步问题同步化

特点:

  • 优点:将传统的回调函数实现异步.变为 .then的链式调用

  • 缺点:then可以一直执行,并且也没有提升太高的代码可读性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值