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小时内删除。