介绍一下ES6 promise

ES6 Promise 是 ECMAScript 2015(简称 ES6)引入的一种处理异步操作的编程模式。Promise 可以简化异步编程,并使代码更易于维护。一个 Promise 对象代表一个尚未完成但预计将来会完成的操作,并能够追踪这个操作的状态。

Promise 有三种状态:

  1. 等待中(pending):初始状态,既不是成功也不是失败。
  2. 已成功(fulfilled):表示操作成功完成。
  3. 已失败(rejected):表示操作失败或发生错误。

Promise 的原型上提供了 thencatch 方法来分别处理已成功和已失败状态的回调函数。

下面是一个 Promise 的基本用法示例:

// 创建一个 Promise
const promise = new Promise((resolve, reject) => {
  // 执行异步操作(例如:发起 Ajax 请求、读取文件等)
  setTimeout(() => {
    // 成功时执行 resolve 回调
    resolve('操作成功');
    // 发生错误时执行 reject 回调
    // reject('操作失败');
  }, 1000);
});

// 使用 then 方法处理成功状态
promise.then((result) => {
  console.log(result); // 输出 "操作成功"
});

// 使用 catch 方法处理失败状态
promise.catch((error) => {
  console.error(error); // 输出 "操作失败"
});

Promise 还提供了一些用于处理多个 Promise 的静态方法,如 Promise.allPromise.race

  1. Promise.all:接收一个包含多个 Promise 的数组,当所有的 Promise 都成功(fulfilled)时返回一个新的 Promise,其 resolve 回调接收到的是每个成功的 Promise 的 resolve 回调参数组成的数组;如果有一个或多个 Promise 失败(rejected),则新的 Promise 进入失败状态,且将第一个失败的 Promise 的 reject 回调参数传递给新 Promise 的 reject 回调。

  2. Promise.race:接收一个包含多个 Promise 的数组,返回一个新的 Promise,这个新的 Promise 会在第一个输入的 Promise 完成(无论是成功还是失败)时进入相应的状态,且其 resolve 或 reject 回调参数与该第一个完成的 Promise 的回调参数一致。

开源项目地址:

https://github.com/xutongbao/learn-chatgpt

猜你喜欢

转载自blog.csdn.net/xutongbao/article/details/130403968
今日推荐