在 JavaScript 中,一个 Promise 对象代表一个异步操作,它有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。Promise 对象用于处理异步操作,它允许您使用 .then() 和 .catch() 方法来处理异步操作的成功和失败情况。
当您创建一个 Promise 对象时,您可以通过调用它的 .then() 方法来指定在 Promise 对象成功时执行的操作。.then() 方法接受两个参数:一个在 Promise 对象成功时执行的回调函数,另一个在 Promise 对象失败时执行的回调函数(可选)。
当 Promise 对象的异步操作成功时,.then() 方法中的回调函数将被执行。当 Promise 对象的异步操作失败时,如果指定了 .catch() 方法中的回调函数,则该回调函数将被执行。如果没有指定 .catch() 方法中的回调函数,则 Promise 对象将进入 pending 状态,直到超时或者被垃圾回收。
.finally() 方法是 Promise 对象的一个实用方法,它接受一个回调函数作为参数,并在 Promise 对象的状态确定后执行该回调函数。无论 Promise 对象的状态是已成功还是已失败,.finally() 方法中的回调函数都将被执行。
下面是一个示例代码,演示了 .then() 和 .finally() 的用法:
javascript复制代码
const promise = new Promise((resolve, reject) => {
// 异步操作
});
promise
.then(() => {
// 在异步操作成功时执行的代码
})
.catch((error) => {
// 在异步操作失败时执行的代码
})
.finally(() => {
// 在 Promise 对象的状态确定后执行的代码,无论成功还是失败都会执行
});
在这个例子中,.then() 方法用于指定在 Promise 对象成功时执行的操作,.catch() 方法用于指定在 Promise 对象失败时执行的操作。.finally() 方法中的回调函数将在 Promise 对象的状态确定后执行,无论成功还是失败都会执行。