Typescript Promise常用函数

举报
林欣 发表于 2024/11/15 11:14:15 2024/11/15
【摘要】 Promise 是 JavaScript(包括 TypeScript)中一种用于处理异步操作的对象,它提供了一系列函数来管理异步流程。以下是 Promise 支持的主要函数: 1. Promise 构造函数作用:创建一个新的 Promise 实例。参数:一个执行器函数,该函数接受两个参数:resolve 和 reject。resolve 用于将 Promise 的状态从 pending 变为...

Promise 是 JavaScript(包括 TypeScript)中一种用于处理异步操作的对象,它提供了一系列函数来管理异步流程。以下是 Promise 支持的主要函数:

1. Promise 构造函数

  • 作用:创建一个新的 Promise 实例。
  • 参数:一个执行器函数,该函数接受两个参数:resolve 和 reject。resolve 用于将 Promise 的状态从 pending 变为 fulfilled,而 reject 用于将状态从 pending 变为 rejected。

2. then 函数

  • 作用:为 Promise 实例添加状态改变时的回调函数。
  • 参数:两个可选的回调函数,第一个用于处理 fulfilled 状态,第二个(可选)用于处理 rejected 状态。如果 Promise 成功完成,则调用第一个回调函数,并将 Promise 的返回值作为参数传递给它;如果 Promise 失败,则调用第二个回调函数,并将错误信息作为参数传递给它。

3. catch 函数

  • 作用:为 Promise 实例添加错误处理回调函数。
  • 参数:一个错误处理回调函数,当 Promise 被拒绝时调用,并将错误信息作为参数传递给它。catch 函数相当于调用 then 函数的第二个参数(错误处理回调)。

4. finally 函数

  • 作用:为 Promise 实例添加无论成功还是失败都会执行的回调函数。
  • 参数:一个不接受任何参数的回调函数。无论 Promise 的最终状态是 fulfilled 还是 rejected,finally 函数中的回调函数都会被调用。

5. Promise.all 函数

  • 作用:将多个 Promise 实例包装成一个新的 Promise 实例。
  • 参数:一个包含多个 Promise 实例的数组。
  • 行为:只有当所有传入的 Promise 实例都成功完成时,新的 Promise 实例才会成功完成,并将所有 Promise 的返回值作为数组传递给 then 函数。如果任意一个 Promise 实例失败,则新的 Promise 实例会立即失败,并将第一个被拒绝的 Promise 的错误信息传递给 catch 函数。

6. Promise.race 函数

  • 作用:与 Promise.all 类似,但行为有所不同。
  • 参数:一个包含多个 Promise 实例的数组。
  • 行为:只要有一个 Promise 实例成功完成或失败,新的 Promise 实例就会采用该 Promise 的状态,并将它的返回值或错误信息传递给后续的 then 或 catch 函数。

7. Promise.any 函数

  • 作用:接受一组 Promise 实例作为参数,包装成一个新的 Promise 实例返回。
  • 行为:只要参数实例中有一个变成 fulfilled 状态,包装实例就会变成 fulfilled 状态;如果所有参数实例都变成 rejected 状态,包装实例就会变成 rejected 状态。与 Promise.race 不同的是,Promise.any 不会因为某个 Promise 变成 rejected 状态而结束,必须等到所有参数 Promise 变成 rejected 状态才会结束。

8. Promise.resolve 和 Promise.reject 函数

  • 作用:分别用于创建一个已解决(fulfilled)或已拒绝(rejected)的 Promise 实例。
  • 参数:Promise.resolve 接受一个值作为参数,并返回一个以该值解决的 Promise 实例。Promise.reject 接受一个错误原因作为参数,并返回一个以该原因拒绝的 Promise 实例。

9. Promise.allSettled 函数

  • 作用:等待所有给定的 Promise 实例解决(fulfilled)或拒绝(rejected),并返回一个在所有 Promise 实例都已经结束后的新 Promise 实例。
  • 参数:一个包含多个 Promise 实例的数组。
  • 返回值:新的 Promise 实例在解决时返回一个数组,数组中的每个元素都是描述对应 Promise 实例状态的对象。

这些函数共同构成了 Promise 的核心功能,使得开发者能够更优雅地处理异步操作,避免回调地狱,并提高代码的可读性和可维护性。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。