前端开发最浪漫的技巧------promise(承诺)

Promise 是 ES6 引入的一种处理异步操作的新方式,用于优化前端开发中的异步操作,如 AJAX 和 Node.js 文件读取。本文详细介绍了 Promise 的概念、状态变化、then() 和 catch() 方法的使用,以及如何通过链式调用和 async/await 语法简化异步代码。重点讲解了 Promise 的状态转换及其对链式调用的影响。
摘要由CSDN通过智能技术生成

在漫漫历史长河中,许多文人墨客对于承诺这个概念有着很多的见解,也留下了很多脍炙人口的篇章,如"君子一言驷马难追",《诗经·邶风·击鼓》中有着一段"死生契阔,与子成说。执子之手,与子偕老。"直至今日依然为世人传颂.

ES6时代,javascript提出了一个新的构造器"promise(承诺)",这掷地有声的名称背后也是前端开发中非常重要的一个语法.


一.什么是promise

promise是ES6提出的一种新语法,一个新的构造器,用于优化实现异步操作。


二.如何使用

1.语法格式

 //实例化创建promist对象
  let promise = new Promise((resolve, reject) => {
    //形参resolve与reject可以改变当前的状态
    resolve("我成功了");
    // reject('我失败了')
  });
  //观察promise对象
  console.log(promise);
  //兑现承诺
  promise
    .then((res) => {
      //当状态PromiseState从pending变化为resolved时触发.即成功
      //形参res是resolve承诺的值
      console.log(res);
    })
    .catch((err) => {
      //当状态PromiseState从pending变化为rejected时触发.即失败
      //形参err是reject承诺的值
      console.log(err);
    })
    .finally(() => {
      //不管成功与否,这个函数都会执行
      console.log("我都会执行");
    });

2.三种状态和值

2.1初始态

pending(待定的,将要发生的),在刚刚创建promise对象时,没有调用resolve或者reject方法,此时的状态(PromiseState)就是pending.

2.2成功态

fulfilled(实现),创建promise对象后,调用了第一个形参'resolve',此时状态就是fulfilled

2.3失败态

rejected(拒绝),在创建promise对象后,调用了第二个形参'reject',此时状态就是rejected

2.4注意点

pending状态可转化,一旦由初始态转化为其他任意一态,转换过程便不可逆了,也就是说转化之后再也不能转化为pending,也不能转化为另一态.

2.5值

调用形参(reso

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值