TS promise

在 TypeScript 中,Promise 是用于处理异步操作的对象。它表示一个可能在未来某个时间点完成或失败的操作,并返回操作结果或错误。

Promise 可以有三种状态:

  1. pending(进行中):Promise 的初始状态,表示操作正在进行中。
  2. fulfilled(已完成):表示操作成功完成。
  3. 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 可以更好地处理异步操作的结果和错误,避免回调地狱,使代码更加可读和可维护。

 
 
posted @   00000000O  阅读(2209)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2022-06-02 unity编辑器相机投影,正交切换
2021-06-02 google filament pbr
2020-06-02 max改法线
点击右上角即可分享
微信分享提示