Promise对象结果值属性介绍

2023-05-23 10:49:12 浏览数 (2)

在JavaScript中,Promise对象具有一个结果值属性,用于表示Promise对象的解析结果。该属性可以通过Promise对象的.then()方法中的回调函数参数来访问。结果值属性可以包含任何JavaScript数据类型,包括基本类型(如数字、字符串)和复杂类型(如对象、数组)。

结果值属性

Promise对象的结果值属性有两个可能的取值:

  1. 解析值(Resolved Value):当Promise对象成功解析时,结果值属性将包含解析后的值。它表示Promise对象的操作成功完成,并返回了一个结果。
  2. 拒绝原因(Rejection Reason):当Promise对象被拒绝时,结果值属性将包含一个拒绝原因,通常是一个Error对象。它表示Promise对象的操作遇到了错误或异常情况。

示例

下面是一个示例,演示了Promise对象的结果值属性的使用:

代码语言:javascript复制
function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Data fetched!'); // 解析Promise,并返回解析值
      // reject(new Error('Data fetching failed!')); // 拒绝Promise,并提供拒绝原因
    }, 2000);
  });
}

fetchData()
  .then(result => {
    console.log('Promise resolved:', result);
  })
  .catch(error => {
    console.error('Promise rejected:', error);
  });

在上述示例中,我们定义了一个fetchData()函数,返回一个Promise对象。在Promise对象的执行过程中,我们模拟了一个异步操作,通过setTimeout函数模拟了一个2秒钟的延迟。在延迟结束后,我们使用resolve方法解析Promise,并传递一个字符串作为解析值。你还可以尝试注释掉resolve行并取消注释reject行来演示Promise的拒绝状态。

在Promise对象的.then()方法中,我们通过回调函数访问Promise的结果值属性。如果Promise对象被成功解析,我们将在控制台输出"Promise resolved: Data fetched!",其中"Data fetched!"是解析值。如果Promise对象被拒绝,我们将在控制台输出"Promise rejected: Error: Data fetching failed!",其中"Error: Data fetching failed!"是拒绝原因。

0 人点赞