Node开发(六)Promise

本文详细介绍了Promise的基本用法,包括如何创建Promise对象,Promise对象的then、catch和finally方法,以及Promise.all()和Promise.race()等高级特性。通过示例解释了Promise在处理异步操作中的重要作用,特别是如何避免回调地狱,提升代码可维护性。
摘要由CSDN通过智能技术生成

Promise是一种异步编程的解决方案。
现在经常使用回调函数来解决异步通信(传参)的问题,若回调函数层次过深,就会出现回调地狱问题(逻辑不够清晰,可维护性差)

Promise是一个对象,通过new Promise来创建对象

1.创建Promise对象

1)Promise对象需要接收一个函数作为参数,这个作为参数的函数有两个参数,resolve,reject
2)resolve和reject本身也是函数

let p=new Promise((resolve,reject)=>{
   
    
});

Promise对象有三种状态:进行中(pending),成功(fullfilled)、失败(rejected)
Promise的状态有两种变化:
Pending---->成功
Pending—>失败
Promise状态一旦发生改变,这个状态就会凝固下来,(不能再改变了)

通过调用resolve函数,可以把promise由进行中修改为成功状态 resolved
通过调用reject函数,可以把promise由进行中修改为失败状态 rejected

调用resolve方法等价于调用then方法的第一个参数
调用了reject方法,等价于调用了then方法的第二个参数

2.promise对象的方法

1)then()方法
then方法可以接收两个函数作为参数,
第一个作为参数的函数:成功状态的回调
第二个作为参数的函数:失败状态的回调

注意:then方法会返回一个新的promise,由于返回值是promise,所以then方法可以实现连缀效果。then方法若只接收了一个参数,则这个参数是成功回调。
then方法的第一个参数函数的返回值问题:
1)若返回值是一个非promise,则这个数据会作为参数传递给第二个then
2)若返回值是一个promise,则第二个then状态的改变取决于这个promise

示例:利用promise解决异步回调问题
       function fn(num) {
   
            const p = new Promise((resolve, rejec)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值