Promise 用法
时间: 2023-11-10 08:02:03 浏览: 85
Promise用法
Promise 是一种用来处理异步操作的技术,它通过封装异步操作并返回一个 Promise 对象来解决回调地狱的问题。Promise 对象有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败),一旦状态发生改变,就会触发对应的回调函数。
Promise 常用的方法有:
1. Promise.resolve(value):返回一个状态为 fulfilled 的 Promise 对象,其值为 value。
2. Promise.reject(reason):返回一个状态为 rejected 的 Promise 对象,其值为 reason。
3. Promise.all(iterable):接收一个可迭代对象,当其中所有 Promise 对象都变为 fulfilled 状态时,返回一个新的 Promise 对象,其值为一个数组,包含每个 Promise 对象的值(按顺序排列)。
4. Promise.race(iterable):接收一个可迭代对象,当其中任意一个 Promise 对象变为 fulfilled 或 rejected 状态时,返回一个新的 Promise 对象,其值为第一个状态发生改变的 Promise 对象的值。
示例代码:
```javascript
const promise = new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
const randomNum = Math.random();
if (randomNum >= 0.5) {
resolve(`成功:${randomNum}`);
} else {
reject(`失败:${randomNum}`);
}
}, 1000);
});
promise.then(
value => console.log(value),
reason => console.error(reason)
);
```
以上代码中,我们通过 Promise 构造函数创建了一个 Promise 对象,当异步操作执行成功时,调用 resolve 方法,并将成功的结果传递给回调函数;当异步操作执行失败时,调用 reject 方法,并将失败的原因传递给回调函数。在 then 方法中,我们传递了两个回调函数,分别处理 Promise 对象的 fulfilled 和 rejected 状态。
阅读全文