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
感谢各位看到这里