js promise几种函数
【原创实用版】
1.Promis 简介
2.Promise 构造函数
3.Promise 状态
4.Promise 实例的方法
4.1 then
4.2 catch
4.3 finally
4.4 async/await
5.Promise 应用实例
正文
1.Promis 简介
Promise 是 JavaScript 中用于处理异步操作的一种编程模式。Promise 表示一个异步操作的最终结果,它可以是成功的(resolved)或失败的(rejected)。Promise 对象有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。
2.Promise 构造函数
Promise 是一个构造函数,可以通过`new Promise()`来创建一个 Promise 对象。Promise 构造函数接收一个参数,该参数是一个执行器函数(executor),这个执行器函数有两个参数,分别是 resolve 和 reject。resolve 和 reject 是两个函数,用于改变 Promise 对象的状态。
```javascript
const promise = new Promise((resolve, reject) => {
// 异步操作
resolved是什么状态});
```
3.Promise 状态
Promise 对象的状态可以通过`status`属性获取,`status`属性的值有:
- pending:进行中
- fulfilled:已成功
- rejected:已失败
```javascript
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("成功");
}, 1000);
});
setTimeout(() => {
console.log(promise.status); // pending
}, 500);
```
4.Promise 实例的方法
4.1 then
`then`方法是 Promise 对象的一个实例方法,用于指定 Promise 成功时的回调函数。`then`方法接收一个参数,该参数是一个函数,当 Promise 状态变为 fulfilled 时,这个函数会被调
用。
```javascript
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("成功");
}, 1000);
});
promise.then(result => {
console.log(result); // 成功
});
```
4.2 catch
`catch`方法是`then`方法的一个可选参数,用于指定 Promise 失败时的回调函数。`catch`方法接收一个参数,该参数是一个函数,当 Promise 状态变为 rejected 时,这个函数会被调用。
```javascript
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
reject("失败");
}, 1000);
});
promise.then(null, error => {
console.log(error); // 失败
});
```
4.3 finally
`finally`方法是 Promise 对象的一个实例方法,用于指定无论是 Promise 成功还是失败,都会执行的回调函数。`finally`方法接收一个参数,该参数是一个函数,当 Promise 状态发生变化时,这个函数会被调用。
```javascript
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("成功");
}, 1000);
});
promise.finally(() => {
console.log("无论成功或失败,都会执行这里的代码");
});
```
4.4 async/await
`async/await`是 ECMAScript 2017 中引入的异步编程语法糖。`async`关键字用于定义一个异步函数,`await`关键字用于等待 Promise 对象的结果。在`async`函数内部,可以调用`await`关键字等待 Promise 对象的结果,这样代码看起来更清晰易读。
```javascript
async function example() {
try {
const result = await new Promise((resolve, reject) => {
setTimeout(() => {
resolve("成功");
}, 1000);
});
console.log(result); // 成功
} catch (error) {
console.log(error); // 失败
} finally {
console.log("无论成功或失败,都会执行这里的代码");
}
}
example();
```
5.Promise 应用实例
假设有一个异步操作,如从服务器获取数据,我们可以使用 Promise 来处理这个操作。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论