2.10JavaScript引用类型之期约(Promise)

1.创建期约对象

创建期约对象时,Promise()构造函数接受一个执行器(executor)函数作为参数。

const p = new Promise(executor);

执行器(executor)函数的签名如下:

function(resolve, reject) {
  //通常是一些异步操作
}

resolvereject也是函数。这两个函数的签名很简单:接受任何类型的单个参数。

resolve(成功返回值)
rejectionFunc(失败原因)

2.期约对象状态

期约对象表示一个异步操作的结果,在不同的状态下会有不同的返回结果。

状态描述返回结果
pending(待定)表示尚未开始或正在执行中——————
resolved(解决),又称为fulfilled(兑现)表示已经成功完成成功返回值
rejected(拒绝)表示没有成功完成失败原因

待定(pending)是期约的初始状态。在待定状态下,期约可以落定(settled)为代表成功的解决(resovled)状态 或 代表失败的拒绝(rejected)状态。

无论落定为哪种状态都是不可逆的。只要从待定转换为解决或拒绝,期约的状态就不再改变,而且也不能保证期约一定会脱离待定状态。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/21652.html

(0)
上一篇 2020年9月9日 22:52
下一篇 2020年9月11日 11:30

相关推荐

发表回复

登录后才能评论