Promise怎么用
时间: 2023-10-30 21:06:41 浏览: 45
Promise 是一种用于处理异步操作的 JavaScript 对象。它是 ES6 规范中的新技术,也是进行异步编程的新解决方案。使用 Promise 可以避免回调地狱的问题。
在使用 Promise 时,我们可以通过 Promise 的构造函数来创建一个新的 Promise 对象。构造函数接受一个函数作为参数,这个函数有两个参数:resolve 和 reject。resolve 参数用于将 Promise 对象的状态改变为成功,并返回一个值;reject 参数用于将 Promise 对象的状态改变为失败,并返回一个错误。
以下是一个 Promise 的使用示例:
```javascript
let myPromise = new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
let randomNum = Math.random();
if (randomNum < 0.5) {
resolve("操作成功");
} else {
reject("操作失败");
}
}, 2000);
});
myPromise.then(
(result) => {
console.log(result); // 输出:操作成功
},
(error) => {
console.log(error); // 输出:操作失败
}
);
```
在上面的示例中,我们创建了一个 Promise 对象 myPromise。在 Promise 构造函数中,我们使用了 setTimeout 来模拟一个异步操作。如果随机生成的数小于 0.5,我们调用 resolve 方法将 Promise 对象的状态改变为成功,并返回"操作成功";否则,我们调用 reject 方法将 Promise 对象的状态改变为失败,并返回"操作失败"。
然后,我们使用 myPromise 的 then 方法来处理 Promise 的结果。then 方法接受两个参数,第一个参数是成功的回调函数,第二个参数是失败的回调函数。在上面的示例中,如果异步操作成功,成功的回调函数将被调用,并将"操作成功"作为参数传入;如果异步操作失败,失败的回调函数将被调用,并将"操作失败"作为参数传入。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)