JavaScript期约(promise)

本文详细介绍了JavaScript中的Promise对象,包括其定义、三种状态(待定、兑现、拒绝)、执行器函数的作用、Promise.resolve()和Promise.reject()方法的使用,以及then()、catch()和finally()实例方法的功能和执行顺序。通过这些内容,读者将能够更好地理解和掌握Promise在处理异步操作中的应用。
摘要由CSDN通过智能技术生成

1.promise的定义

promise对象用于表示一个异步操作的最终完成或失败及其结果值,它能把异步操作最终的成功返回值或者失败原因和相应的处理程序关联起来。

2.期约是一个有状态的对象,可能处于以下三种状态

        (1)待定(pending): 表示尚未开始或者正在执行中。

        (2)兑现(fulfilled,有时候也称为“解决”,resolved): 表示已经成功完成。

        (3)拒绝(rejected): 则表示没有成功完成,也就是已经失败。

待定(pending)是期约的最初始的状态,在待定状态下,期约是可以落定(settled)为代表成功的兑现(fulfiled),或者代表失败的拒绝(rejected)状态。无论落定为哪种状态都是不可逆的。只要从待定状态转为为兑定或者拒绝,期约的状态就不在改变。每个期约只要状态切换为兑现(fulfilled),就会有一个私有的内部值(value)。类似地,每个期约只要状态切换为拒绝(rejected),就会有一个私有的内部理由(reason)。无论是值还是理由,都是包含原始值或对象的不可修改的引用。二者都是可选的,而且默认值为undefined。在期约到达某个落定(settled)状态时执行的异步代码始终会收到这个值(value)或理由(reason)。

3.Promise通过执行器函数控制期约的状态

由于期约的状态是私有的,所以只能在内部进行操作。内部操作在期约的执行器函数中完成。执行器函数主要有两项职责:初始化期约的异步行为和控制状态的最终转换。其中,控制期约状态的转换是通过调用它的两个函数参数实现的。这两个参数通常命名为resolvereject。调用resolve()

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值