一分钟快速了解Promise的介绍和使用

54 阅读2分钟

Promise介绍

在JavaScript 中用于处理异步操作的一种对象,它代表了一个尚未完成,但预期将来会完成的操作的结果。Promise 对象用于异步计算,它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件可能成功也可能失败。

Promise的状态

一个Promise有三种状态:

1 pending(进行中):初始状态,既不是成功也不是失败状态

2 fulfilled(已完成):意味着操作完成

3 rejecred(已失败):意味着操作失败

基本用法

1 创造一个Promise对象

const promise = new Promise(function(resolve, reject) { 
// 做一些异步操作,最终调用 resolve 或 reject 
   if (/* 操作成功 */) { 
   xresolve('成功的结果'); 
} else {
   reject('失败的原因'); 
}
});

2 使用 Promise 对象

promise.then(function(value) {
  // 成功时执行的代码
  console.log(value);
}).catch(function(error) {
  // 失败时执行的代码
  console.log(error);
});

优点

  • 更好的错误处理Promise 提供了统一的错误处理机制,通过 .catch() 方法可以捕获到异步操作中的错误。
  • 链式调用Promise 对象的 .then() 方法返回一个新的 Promise,可以链式地调用多个异步操作。
  • 同步代码风格Promise 允许你以同步代码的风格编写异步代码,使得代码更加清晰和易于理解。

注意事项

  • 当创建 Promise 时,传入的函数会立即执行。
  • resolve 和 reject 函数只能传递一个参数。
  • then 和 catch 方法都会返回一个新的 Promise,因此它们可以被链式调用。

这些只是 Promise 的一些基础和常用用法,实际应用中还有很多高级用法和注意事项。希望这能帮助你更好地理解和使用 Promise

以上就是Promise 的基本使用

Promise 是 JavaScript 中用于处理异步操作的对象,它提供了一些常用的静态方法来处理多个 Promise 实例。以下是一些常用的 Promise 静态方法

1 Promise.all(iterable)

  • 这个方法可以接收一个可迭代的Promise实列的数组作为输入
  • 当这个数组中的所有Promise都成功解决时 Promise.all就会返回一个所有解决值的数组
  • 如果数组中有一个Promise被拒绝 Promise.all就会立刻返回一个拒绝的Promise

2 Promise.allSettled(iterable)

  • 与Promise.all类似 也可以接收一个可迭代的Peomise实列数组
  • 不同之处在于,无论数组中的Promise是否被拒绝,d都会等待所有的Promise完成后返回一个数组,该数组包含每一个Promise的状态和值

3 Promise.race(iterable)

  • 与Promise.all类似 也可以接收一个可迭代的Peomise实列数组
  • Promise.race返回一个Promise 在数组中只要有一个Promise被解决或拒绝后立刻解决或拒绝

4 Promise.reject("失败原因")

  • 返回一个拒绝的Promise对象

5 Promise.resolve("成功原因")

  • 返回一个成功的Promise

感谢各位看到这里