1.创建期约对象
创建期约对象时,Promise()
构造函数接受一个执行器(executor)函数作为参数。
const p = new Promise(executor);
执行器(executor)函数的签名如下:
function(resolve, reject) {
//通常是一些异步操作
}
resolve
与 reject
也是函数。这两个函数的签名很简单:接受任何类型的单个参数。
resolve(成功返回值)
rejectionFunc(失败原因)
2.期约对象状态
期约对象表示一个异步操作的结果,在不同的状态下会有不同的返回结果。
状态 | 描述 | 返回结果 |
pending(待定) | 表示尚未开始或正在执行中 | —————— |
resolved(解决),又称为fulfilled(兑现) | 表示已经成功完成 | 成功返回值 |
rejected(拒绝) | 表示没有成功完成 | 失败原因 |
待定(pending)是期约的初始状态。在待定状态下,期约可以落定(settled)为代表成功的解决(resovled)状态 或 代表失败的拒绝(rejected)状态。
无论落定为哪种状态都是不可逆的。只要从待定转换为解决或拒绝,期约的状态就不再改变,而且也不能保证期约一定会脱离待定状态。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/21652.html