Promise 对象的三种状态

109 阅读2分钟

在 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 对象的状态确定后执行,无论成功还是失败都会执行。