📅  最后修改于: 2023-12-03 15:21:46.466000             🧑  作者: Mango
JavaScript 承诺是一种处理异步操作的方法。承诺包装一个异步操作并返回一个代表该异步操作结果的对象。承诺从产生到解决的整个过程分为三种状态:未完成(pending)、已完成(fulfilled)和已拒绝(rejected)。当承诺的状态从未完成变为已完成或已拒绝时,它就变得“已定型”,并且无法再更改状态。
下图展示了一个典型的 JavaScript 承诺生命周期的示例。
Promise
_____________|______________
| | |
pending fulfilled rejected
| |
then() catch()
| |
v v
Chain Promise Chain Promise
then()
方法来附加成功或失败后的回调函数。catch()
方法来附加失败后的回调函数。使用 Promise 非常简单,只需创建一个 Promise 并附加回调,如下所示:
const promise = new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
// 成功
resolve("Data fetched successfully.");
// 失败
// reject("Error fetching data.");
}, 2000);
});
// 附加回调
promise.then(data => {
console.log(data);
}).catch(error => {
console.log(error);
});
resolve
回调函数和一个 reject
回调函数作为参数。resolve
函数或 reject
函数。then()
方法或 catch()
方法附加回调函数。JavaScript 承诺提供了一种更优雅、更简单的方式来处理异步操作。虽然它可能需要一些时间适应其基本概念和用法,但它可以大大提高代码的可扩展性和可重用性,从而更轻松地处理异步代码。