在JavaScript中,Promise对象具有一个结果值属性,用于表示Promise对象的解析结果。该属性可以通过Promise对象的.then()
方法中的回调函数参数来访问。结果值属性可以包含任何JavaScript数据类型,包括基本类型(如数字、字符串)和复杂类型(如对象、数组)。
结果值属性
Promise对象的结果值属性有两个可能的取值:
- 解析值(Resolved Value):当Promise对象成功解析时,结果值属性将包含解析后的值。它表示Promise对象的操作成功完成,并返回了一个结果。
- 拒绝原因(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!"是拒绝原因。