ES6 中的 Promise 状态是什么?
在本文中,我们将讨论与承诺相关的基本细节以及 ES6 中的各种承诺状态。
让我们首先了解一些与 Promise 相关的基本细节。
承诺:
- Promise 是一个对象,用于处理所有异步操作(这些操作显然是在来自某些资源的异步数据上执行的)。
- 它在某种程度上与现实生活中的承诺相互关联。它实际上是一个基于未来的场景,虽然在未来本身执行。
- 承诺可能有两种结果:在未来,它可能会实现,也可能不会。
- 这就是我们的 Promise 的执行方式,每当我们定义一个 Promise 时,它要么随着时间的推移而得到解决,要么被拒绝。
- 我们可以使用以下语法声明一个 Promise。
句法:
以下语法可用于声明承诺:
// This is how we could initialize
// or set up our promise object
let promise_object = new Promise();
承诺状态:
- 如上图所示,promise 有三种状态:Resolved、Reject、Pending。
- Pending 状态是 Promise 没有成功或失败的初始状态。
- Resolve 状态是 promise 成功执行的另一种状态。
- 拒绝状态是承诺无法执行的最后阶段。
- 为了表示 Promise 的状态,我们可以遵循特定的语法。
句法:
以下语法可用于设置 Promise 的状态:
// At a time either a promise gets resolved
// or reject but not both.
let promise_object = new Promise(resolve, reject);
现在,我们已经了解了与 Promise 相关的基本细节,然后是 Promise 状态,现在是时候提供一些示例,这将有助于我们以更好的方式理解所有事物。
示例 1:
- 在这个例子中,我们将按照我们之前看到的语法创建一个 Promise。
- 除了声明 Promise 之外,我们首先将使用 resolve() 状态来显示 Promise 如何成功地在 resolve 方法中传递数据。
- 之后,使用 .then() 方法,我们将在控制台上打印出我们的数据。
Javascript
let promise = new Promise((resolve, reject) => {
resolve("Hello World.... This is a Promise");
})
// After promise getting successfully
// executed, data gets printed
.then((data) => console.log(data))
// If any error comes in between then
// it gets printed with the help of
// catch block
.catch((error) => console.log(error));
Javascript
let promise = new Promise((resolve, reject) => {
reject("Oops..!!! An Error Occured");
})
// Here .then() method has no significance
// since it is being resolved by catch block
.then((data) => console.log(data))
// Error message will be displayed by
// this catch() block
.catch((error) => console.log(error));
输出:
Hello World.... This is a Promise
示例 2:
- 同样在这个例子中,我们将按照我们之前看到的语法创建一个 Promise。
- 除了声明 Promise 之外,我们还将使用 reject() 方法来展示如何在任何特定内容执行失败的情况下使用 Promise。
- 之后,我们将使用 .catch() 方法在控制台上显示任何错误消息。
Javascript
let promise = new Promise((resolve, reject) => {
reject("Oops..!!! An Error Occured");
})
// Here .then() method has no significance
// since it is being resolved by catch block
.then((data) => console.log(data))
// Error message will be displayed by
// this catch() block
.catch((error) => console.log(error));
输出:
Oops..!!! An Error Occured