当前位置: 首页 > news >正文

Promise对象状态属性 工作流程 Promise对象的几个属性

Promise 对象状态属性介绍

实例对象中的一个属性

PromiseState

pending
1、pending 变为 resolved / fullfilled 成功
2、pending 变为 rejected 失败

说明:只有这2种,且一个promise对象只能改变一次
无论变为成功还是失败,都会有一个结果数据
成功的结果数据一般称为value,失败的结果数据一般称为reason

Promise对象的值

实例对象中的另一个属性 PromiseResult
它保存着异步任务:对象成功或者失败的结果
resolve函数和reject函数 可以对实例对象当中的PromiseResult的值进行修改

Promise的工作流程

1、给Promise对象进行实例化

new Promise()

2、执行异步操作
如果成功了就会执行resolve()方法
如果失败 了就会执行reject()方法

3、promise对象的状态会变为resolved状态或者rejected状态

改变的状态取决于第二步中执行的失败与否

4、如果Promise对象是resolved状态则会执行then()方法,回调onResolved()方法

如果Promise对象是rejected状态则会执行then()方法或者catch()方法

5、生成新的Promise对象

Promise的API-构造函数-then-catch

API

1、Promise构造函数:Promise(excutor){}
(1)excutor函数:执行器(resolve,reject)=>{}
(2)resolve函数:内部定义成功时我们调用的函数 value=>{}
(3)reject函数:内部定义失败时我们调用的函数 reason=>{}

说明:executor会在Promise内部立即同步调用,异步操作在执行器中执行

2、Promise.prototype.then方法:(onResolved,onRejected)=>{}
(1) onResolved函数:成功的回调函数 (value)=>{}
(2)onRejected函数:失败的回调函数(reason)=>{}
说明:指定用于得到成功的value的成功回调函数和用于得到失败的reason的失败水貂返回一个新的promise对象。

3、Promise.prototype.catch方法:(onRejected)=>{}
(1)onReject函数:失败的回调函数(reason)=>{}

4、Promise.resolve方法:(value)=>{}
(1)value:成功的数据或promise对象
说明:返回一个成功/失败的promise对象

5、Promise.reject方法:(reason)=>{}
(1)reason:失败的原因
说明返回一个失败的promise对象

6、Promise.all方法:(promises)=>{}
(1)promises:包含n个promise的数组
说明:返回一个新的promise,只有所有的promise都成功才成功,只要有一个失败了,就直接失败

7、Promise.race方法:(promises)=>{}
(1)promises:包含n个Promise的数组
说明:返回一个新的promise,第一个完成的promise的结果状态就是最终的结果状态

http://www.lryc.cn/news/30788.html

相关文章:

  • webgpu思考obj携带属性
  • 设计模式(只谈理解,没有代码)
  • 06、Eclipse 中使用 SVN
  • Zookeeper3.5.7版本——客户端命令行操作(命令行语法)
  • 2023.03.05 学习周报
  • java Spring JdbcTemplate配合mysql实现数据批量修改
  • 《算法分析与设计》笔记总结
  • 序列化与反序列化概念
  • 【Java并发编程】CountDownLatch
  • 【iOS】Blocks
  • Java Volatile的三大特性
  • Android Compose——一个简单的Bilibili APP
  • 二叉树的最近公共祖先【Java实现】
  • 关闭应用程序遥测,禁止Windows收集用户信息
  • 【备战面试】每日10道面试题打卡-Day4
  • 热乎的面经——初出茅庐
  • 数据库中各种锁汇总
  • p76 - Python 开发-内外网收集 Socket子域名DNS
  • QCC51XX--eFush Key加密
  • nginx http模块
  • 守护进程 || 精灵进程
  • Zookeeper3.5.7版本——客户端命令行操作(znode 节点数据信息)
  • 如何写好单测
  • CDH-6.3.2内置spark-2.4.0的BUG
  • SpringCloud之ElasticSearch笔记
  • 数字图像学笔记 —— 17. 图像退化与复原(自适应滤波之「最小二乘方滤波」)
  • 2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写。
  • MathType7最新版免费数学公式编辑器
  • 一文带你入门angular(中)
  • 单例设计模式共享数据问题分析、解决(c++11)设计多线程。