重温promise与async/await

本文深入探讨了Promise异步编程的概念,包括其三种状态、不变性及常用方法。接着介绍了async/await作为升级版的异步解决方案,通过实例展示了其工作原理。同时,文章还涉及了JavaScript的宏任务与微任务执行机制,帮助读者理解异步执行顺序。最后,提供了相关资源链接以便进一步学习。
摘要由CSDN通过智能技术生成
1. promise异步编程

promise对象代表一个异步操作,有三种状态:pending(进行中),fulfilled(resolved)(已成功),rejected(已失败)。
特点

  • 对象的状态不受外界影响
  • 一旦状态改变,就不会再变,任何时候都可以得到这个结果

注: promise状态改变只有两种可能:pending —> fulfilled, pending —> rejected

实例方法

  • Promise.prototype.then() :为promise实例添加状态改变时的回调函数,第一个参数为resolved状态回调函数,第二个(可选)为rejected状态的回调函数,返回一个新的promise实例。
  • Promise.prototype.catch():用于指定发生错误时的回调函数,参数为rejected状态回调函数,返回一个新promise对象。
  • Promise.prototype.finally():用于指定不管promise对象最后状态如何,都会执行的操作,其回调函数不接受任何参数。

promise基本实例

const promise = new Promise(function(resolve, reject) {
   
  // ... some code

  if (/* 异步操作成功 */){
   
    resolve(value);
  } else {
   
    reject(error);
  }
});

promise
.then(result => {
   ···})
.catch(error => {
   ···})
.finally(() => {
   ···});

promise方法

  1. Promise.all()const p = Promise.all([p1, p2, p3]);
  • 只有p1,p2,p3的状态都变成fulfilled, p的状态才会变成fulfilled,此时
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值