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

Promise 的描述

Promise对象 表示异步操作最终的完成(或者失败)以及其结果的值。

对 Promise 的描述

一个 Promise 是一个代理,代表一个在创建 promise 时不一定已知的值。Promise 允许我们将处理程序与异步操作的最终成功的值或者失败的原因关联起来。使得异步方法可以像同步方法一样返回值:异步方法不会立即返回最终值,而是返回一个 promise,以便在将来的某个时间点提供这个最终值。

一个 Promise 具有几种状态:

  • 待定(pending) :初始状态,没有被兑现(fulfilled) 也没有被拒绝(rejected)。
  • 已兑现(fulfilled) :操作成功完成。
  • 已拒绝(rejected) :操作失败。

一个 Promise 最终状态可以是 fulfilled 并返回一个值,或者是 rejected 并返回一个原因(错误)。这时通过 Promise 的 then 方法串联起来的处理程序将被调用。如果绑定相应的处理程序时 Promise 是 fulfilled 或者 rejected ,处理程序将被立即调用,因此,异步操作完成和绑定处理程序两者之间不存在竟态条件。

如果一个 Promise 是 fulfilled 或者是 rejected ,即不再是 pending 状态,我们称之为 敲定(settled) 。

已解决(resolved) 也是用来描述 Promise 的一个术语,表示该 Promise 是 settled ,或者为了匹配另一个 Promise 的最终状态而被 锁定(lock-in) ,resolved 状态的 Promise 进一步转化为 fulfilled 或者 rejected 都不会有影响。

new Promise((resolveOuter) => {resolveOuter(new Promise((resolveInner) => {setTimeout(resolveInner, 1000);}),);
});

此 Promise 在创建时已经 resolved (因为 resolveOuter 是同步调用的),但它是用另一个 Promise resolve 的,因此在内部 Promise fulfilled 的 1 秒之后才会被兑现。在实践中,“resolve”过程通常是在幕后完成的,不可观察,只有其 fulfilled 或 rejected 是可观察的。


http://www.mrgr.cn/news/45720.html

相关文章:

  • pg if条件语句
  • Python爬虫之正则表达式于xpath的使用教学及案例
  • 合约测试用例详解
  • [笔记] 仿射变换性质的代数证明
  • EhViewer新手开源项目教程!一文教你安装与高效使用!
  • Verilog开源项目——百兆以太网交换机(八)包缓存模块设计
  • 【专题】数据库系统的基本原理
  • 探索Ultralytics YOLO11在视觉任务上的应用
  • 面试题:Redis(二)
  • Numpy为什么是Python数据科学的顶级库?
  • 基于三体强相互作用力的材料——一种理论探讨
  • 微调Whisper模型,让你的语音技术走在前沿!
  • cs61b学习 part3
  • 【力扣算法题】每天一道,健康生活
  • Python Kivy 应用的进阶学习教程
  • 实验5 数组
  • Sym-NCO:利用对称性进行神经组合优化
  • 【测试】——Loadrunner 介绍与使用
  • 【重学 MySQL】六十二、非空约束的使用
  • MySQL运维