TS promise
在 TypeScript 中,Promise 是用于处理异步操作的对象。它表示一个可能在未来某个时间点完成或失败的操作,并返回操作结果或错误。
Promise 可以有三种状态:
- pending(进行中):Promise 的初始状态,表示操作正在进行中。
- fulfilled(已完成):表示操作成功完成。
- rejected(已拒绝):表示操作失败。
创建 Promise 对象时,需要传递一个执行器函数(executor function),它接受两个参数:resolve 和 reject。通过调用 resolve 函数,可以将 Promise 状态从 pending 变为 fulfilled,并传递操作结果。通过调用 reject 函数,可以将 Promise 状态从 pending 变为 rejected,并传递操作失败的原因。
Promise 提供了链式调用的机制,可以通过 then 方法注册成功状态的处理函数,通过 catch 方法注册失败状态的处理函数。这样可以对异步操作进行更加清晰和结构化的处理。
下面是一个使用 Promise 的示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function fetchData(): Promise< string > { return new Promise< string >((resolve, reject) => { setTimeout(() => { const data = 'Data fetched successfully' ; if (data) { resolve(data); // 模拟操作成功 } else { reject( new Error( 'Failed to fetch data' )); // 模拟操作失败 } }, 2000); }); } fetchData() .then((data) => { console.log(data); // 在操作成功时打印结果 }) . catch ((error) => { console.error(error); // 在操作失败时打印错误信息 }); |
在上述示例中,fetchData 函数返回一个 Promise 对象,用于模拟异步获取数据的操作。通过调用 then 方法注册成功状态的处理函数,该函数会在操作成功时被调用,并接收操作结果作为参数。通过调用 catch 方法注册失败状态的处理函数,该函数会在操作失败时被调用,并接收错误信息作为参数。
Promise 还提供了其他方法,如 finally 方法用于注册无论操作成功还是失败都要执行的处理函数,以及静态方法如 all、race、resolve 和 reject 等,用于处理多个 Promise 对象的组合和创建。
使用 Promise 可以更好地处理异步操作的结果和错误,避免回调地狱,使代码更加可读和可维护。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2022-06-02 unity编辑器相机投影,正交切换
2021-06-02 google filament pbr
2020-06-02 max改法线