Promise

本文介绍了Promise的三种状态及其转换,重点讲解了如何访问Promise实例的状态以及其实例方法(.then(), .catch(), .finally())和静态方法(Promise.all(), Promise.race(), Promise.any(), Promise.resolve(), Promise.reject())。同时,对比了reject和catch在处理异常时的区别,强调了网络异常会直接触发catch处理。" 131552202,13415332,Oracle数据库:构建与优化学生信息系统,"['数据库设计', 'Oracle', '数据库管理', '表关系', '数据建模']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

promise有几种状态,什么时候会进入catch?

三个状态: pending、fulfilled、reject 两个过程: padding -> fulfilled、padding -> rejected当pending为rejectd时,会进入catch

如何访问promise实例内部的状态?以及promise的实例方法、静态方法有那些?

通过promise的实例方法访问

    promise.then(res => {
        console.log(res)
      }).catch(error => {
        console.error(error)
      })

promise的实例方法

      .then()
        // promise状态为fulfilled
        参数:函数,函数内部的参数是resolve传过来的实参
      .catch()
        // promise状态为rejected 
        参数:函数,函数内部的参数是reject传过来的实参
      .finally()
        无论promise状态是成功还是失败,都会执行里面的代码

promise的静态方法

        Promise.all([pro1,pro2])
        将pro1和pro2包装成数组作为实参传递进去
        返回值:promise对象。结果 =》pro1,pro2都成功才成功,有一个失败就失败
      Promise.race([pro1,pro2])
        将pro1和pro2包装成数组作为实参传递进去
        返回值:promise对象。结果 =》pro1,pro2谁先回来就用谁都结果(无论成功或者失败)
      Promise.any([pro1,pro2])
        将pro1和pro2包装成数组作为实参传递进去
        返回值:promise对象。结果 =》pro1,pro2都失败才失败,有一个成功就成功
      Promise.resolve()
        参数:任意
        返回值:状态为fulfilled的promise对象
      Promise.reject()
        参数:任意
        返回值:状态为rejected的promise对象

Promise 中reject 和 catch 处理上有什么区别 ?

reject 是用来抛出异常,catch 是用来处理异常 reject 是 Promise 的方法,而 catch 是 Promise 实例的方法 reject后的东西,一定会进入then中的第二个回调,如果then中没有写第二个回调,则进入catch 网络异常(比如断网),会直接进入catch而不会进入then的第二个回调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值