ES6 Promise的状态是什么
在本文中,我们将讨论与Promise相关的基本细节,以及ES6中Promise的各种状态。
首先,让我们了解一些与Promise相关的基本细节。
Promise:
- Promise是用于处理所有异步操作的对象(显然是在来自某些资源的异步数据上执行的)。
- 它与现实生活中的承诺有些相互关联。它实际上是一个基于未来执行的场景。
- 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既不会成功也不会失败。
- 已解决(Resolved)状态是另一个状态,表示Promise已成功执行。
- 已拒绝(Reject)状态是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如何成功传递到resolved方法中的数据。
- 之后,我们将使用.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));
输出:
Hello World.... This is a Promise
示例2:
- 在这个示例中,我们也将按照之前所看到的语法创建一个promise。
- 除了声明promises之外,我们还将使用reject()方法来展示在执行特定内容失败的情况下如何使用promises。
- 之后,我们将使用.catch()方法在控制台上显示任何错误消息。
Javascript
let promise = new Promise((resolve, reject) => {
reject("Oops..!!! An Error Occurred");
})
// 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 Occurred