Typescript Promise常用函数
【摘要】 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)