promise相关方法
时间: 2024-06-20 11:00:41 浏览: 165
js代码-面试题3:实现PromiseA+规范,实现all、resolve、reject、finally、race等方法
Promise 是 JavaScript 中一种处理异步操作的机制,它帮助开发者更好地组织和管理异步代码,使得代码更易于理解和维护。Promise 对象有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。Promise 有以下几个主要的方法:
1. **`new Promise()`**:创建一个新的 Promise 对象,接受一个函数作为参数,这个函数有两个参数:resolve(成功回调)和 reject(失败回调)。
```javascript
const myPromise = new Promise((resolve, reject) => {
// 异步操作
if (/* 成功 */) {
resolve(value);
} else {
reject(error);
}
});
```
2. **`.then(onFulfilled, onRejected)`**:当 Promise 转变为 fulfilled 时,执行 onFulfilled 函数;如果变为 rejected,则执行 onRejected 函数。返回一个新的 Promise。
```javascript
myPromise.then(result => {
// 处理成功结果
}, error => {
// 处理错误
});
```
3. **`.catch(onRejected)`**:这是一个简写版的 `.then(null, onRejected)`,用于处理 Promise 的拒绝情况。
```javascript
myPromise.catch(error => {
// 错误处理
});
```
4. **`.finally(onFinally)`**:无论 Promise 是否完成,都会执行 onFinally 函数,主要用于清理资源或做其他最终操作。
```javascript
myPromise.finally(() => {
// 执行无论成功失败都会进行的操作
});
```
5. **`.all(arrayOfPromises)`** 和 **`.race(arrayOfPromises)`**:前者等待所有 Promise 全部成功后返回结果数组,后者则返回第一个完成的 Promise 结果。
6. **`Promise.resolve(value)`** 和 **`Promise.reject(error)`**:静态方法,用于直接创建已成功或已失败的 Promise。
7. **`.chain()` 或 `.then().then()`**:链式调用,用于在一系列的异步操作之间建立依赖关系。
阅读全文