promise学习记录

一 promise是什么

  1. 抽象表达:promise是一门新技术,是js中进行异步编程的新解决方案
  2. 具体表达:promise是一个构造函数,promise对象用来封装一个异步操作获取成功/失败的值
  3. 异步编程:fs文件操作 数据库操作 ajax 定时器

二 promise的优点

  1. 指定回调函数的方式更加灵活
  2. 支持链式调用解决 回调地狱问题:不便阅读和处理异常

三 promise使用

  1. 实例对象传入两个形参  const p =new promise((resolve,reject)=>{})成功调用resolve 反之调用reject。resolve()reject()函数中可以传入形参交给promise.then进行处理
  2. 调用p.then(()=>{},()=>{},)第一个是成功时的回调第二个是失败时的回调
  3. p.catch(reason=>{console.log(reason)}) //失败执行catch函数

四 promise属性

  1. 对象状态属性(promisestate):pending 未决定的 resolved/fullfilled 成功 rejected 失败
  2. 对象结果属性(promiseresult):保存对象成功失败的结果,成功数据称为value 失败结果数据称为reason,可以通过reject resolve throw进行修改状态

五 promise方法

  1. promise.resolve (参数):如果传入参数是非promise类型的对象则返回结果为成功的promise对象;如果传入参数是promise类型的对象则参数的结果决定了resolve的结果;

  2. promise.reject (参数):无论传入什么都是失败的

  3. promise.all (参数):包含n个promise数组,返回一个promise当所有promise都成功才成功

  4. promise.race (参数):包含n个promise数组,第一个完成的结果状态就是最终的结果状态

六 promise的几个关键问题

  1. 改变状态无论多少个回调函数都要执行
  2. promise状态和回调通常情况下先调用回调函数,再改变状态;如何先改变状态再指定回调 ①在执行器中直接调用resolve()/reject()同步任务 ②延迟更长时间才调用then 异步任务
  3. promise串联多个操作任务:promise.then返回新的prommise产生then()的链式调用;通过then的链式调用串联多个同步/异步任务
  4. 异常的穿透:使用promise的then链式调用可以在最后指定失败的回调 前面任何操作出现异常都会传到最后失败的回调中处理
  5. 中断promise链:返回pending状态的promise对象

七 async与await函数

  1. async函数返回promise对象(结果由async函数执行的返回值决定)
  2. await函数表达式如果是promise对象则返回promise成功的值,否则直接将此作为await的返回值
  3. 注意:await必须写在async函数中但async函数中可以没有await ,如果await的promise失败了就会抛出异常可以通过try catch进行捕获

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值