promise
约 534 字大约 2 分钟
2025-03-14
提问
- 简单介绍一下 promise
- 说一下 Promise A+ 规范
参阅 详解 promise
promise
promise 是一个 异步编程解决方案,提供了一种 链式调用的方法,以一种更为扁平的方式处理复杂异步编程场景。 在早期使用 异步回调函数时,经常容易出现 在异步回调中写异步回调的回调嵌套地域,导致代码拥冗难以阅读。
Promise是一个构造函数,用于创建一个新的 Promise 对象,该构造函数主要用于包装还没添加 promise 支持的函数。
状态
promise 创建后,必然出于一下三种状态之一:
pending待定状态fulfilled操作成功rejected操作失败
当状态从 pending 更新到另外一种状态后,就再也不能变更为其他状态。
实例方法
.then()接受两个函数参数 ,状态从 pending 更新到另一个状态时触发.cache()接受一个函数参数,状态从 pending 更新到 rejected 时触发.finally()只要状态发生变化,所有 then() 和 catch() 执行完成后,最后执行 finally
静态方法
resolve(value)返回一个 状态为给定的 value 决定的 promise 实例reject(reason)返回一个状态为失败的 promise 实例all()传入一组 promise 实例并返回一个新的 promise 实例,当传入的 promises 状态均更新为成功时触发 返回实例的状态更新为成功,否则更新为失败allSettled()传入一组 promise 实例并返回一个新的 promise 实例,当传入的 promises 状态均更新到最终状态, 触发返回实例 promise 的状态更新race()传入一组 promise 实例并返回一个新的 promise 实例,只要传入的 promises 有一个状态更新到最终状态, 触发返回实例 promise 的状态更新
Promise A+ 规范
Promise A+ 规范 是 一个开放、健全且通用的 Javascript Promise 标准。
规范不设计如何创建、解决和拒绝 promise,而是专注于提供一个通用的 then 方法。
