prmise

 最主要的功能是解决回调地狱的问题

只要面试官.提到了 promise 下面内容全部说出来

1 promise 程序执行的特点

- 1: new Promise(构造函数的回调函数)中的回调函数是同步执行的

- 2: 原型方法的回调函数,都是异步执行的, 属于异步消息队列中的微任务.(then,catch,finally)

2 promise有三种状态

- pending

- resolve/ fulfilled 已接收

- reject   已拒绝

 peomise api 分类

- 原型api

- 静态pai

- 所有的api执行后返回值都是 新的promise实例, 只要是 promise实例就可以使用原型方法

- 静态方法:只能供Promise构造函数使用

 原型方法

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

分类

- then 监听primise实例状态的变更, 主要监听变为已接收

- catch  监听promis实例 已拒绝的状态

- finally  监听链式调用中最后的一个状态

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

**.then Callback**

- 1: 触发条件 当prmise状态变为 fulfilled

- 2: 形参来源 resolve函数实参 或者 上一个then return

.then Callback

1:所有prmie都变为 resolve

2:形参 数组, 数组元素 resove 实参.

静态方法

- Promise.all() 同时剪监听多个promise实例的状态变更,所有promise都变为 fullild (已接收) 执行 特all-then-callback,有一个拒绝执行catch-callback

  - 我经常用于处理并发业务.例如,同时发送多个请求,等所有请求成功后,在处理.

  - 经典的例子为:多张图片上传,之后同时发送

> Promise.all 捕获 reject 不是绝对的.如果单个prmise中;捕获了catch, Promise.all 不会捕获catch  

~~~js

Promise.all()

参数:数组;数组元素是promise 实例

返回:新的prmise


 

~~~

- Promise.race() 监听多个promise实例状态,**第一个发生状态变更**的,如果是 fullid(已接收),执行 race-then-callback  如果是reject 执行race-catch-callback

- Prmise.any() 监听多个promise实例的状态, **只要有一个** 变为`fulfilled` (已接收) 执行 any-then-callback **全部reject**执行 any-catch-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、付费专栏及课程。

余额充值