ES6中的Promise

Promise是ES6中新增的一种异步编程的解决方案,用于处理异步操作。Promise对象代表一个异步操作的最终完成或失败,并返回相应的结果值。

Promise有以下特点:

  1. Promise对象是异步执行的,即Promise对象本身不会阻塞主线程的执行。

  2. 一个Promise对象只能有一个结果或错误,一旦Promise对象的状态发生变化,状态就不会再变化。

  3. Promise对象可链式调用,通过返回新的Promise实例实现。

  4. Promise对象可以通过then()方法获取异步操作的结果,也可以通过catch()方法捕获可能出现的错误。

 1)需要传递一个回调函数作为参数:

  回调函数可以接收两个参数(函数):

  resolve             调用之后,可以将promise的状态修改为成功

  reject                调用之后,可以将promise的状态修改为失败

2)内部保存异步操作

  const p=new Promise((resolve,reject)=>{
            //异步
            setTimeout(()=>{
                resolve('你好欢迎回来');//修改promise的状态       成功
                //reject('很抱歉未成功');
            },1000);
        });

3)有三种状态:

      pending      进行中

Promise {<pending>}
[[Prototype]]: Promise
[[PromiseState]]: "pending"//进行中
[[PromiseResult]]: undefined

      fulfilled    已成功

Promise:
[[Prototype]]:Promise
[[PromiseState]]:"fulfilled"//成功
[[PromiseResult]]: undefined

      rejected     已失败

Promise {<pending>}
[[Prototype]]: Promise
[[PromiseState]]: "rejected"//失败
[[PromiseResult]]: undefined

4)状态一旦改变,不可逆:

                        pending---- fulfilled       resolved        成功

                        pending----rejected         rejected        失败


        p.then((msg)=>{//成功的回调
            console.log('成功:',msg);//你好欢迎回来
        },(err)=>{//失败的回调
            console.log('失败:',err);//很抱歉未成功
        })

5)一旦执行,不可取消。立即执行:

其中,Promise构造函数接收一个函数作为参数,函数中包含异步操作逻辑,并根据操作结果调用resolve(成功)或reject(失败)函数。then方法用于指定成功的回调函数,catch方法用于指定失败的回调函数。

Promise还提供了其他方法,如all、race、finally等,用于多个异步操作的处理。使用Promise能够更好地管理异步代码和处理异步操作的错误,是ES6中重要的新增特性。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值