详解Promise.resolve
时间: 2023-11-16 10:49:55 浏览: 166
Promise.resolve 是一个在 JavaScript 中用来创建一个已经解决(resolved)的 Promise 对象的方法。它返回一个表示解决结果的 Promise 对象。
当传递给 Promise.resolve 的参数是一个包含 then 方法的对象时(称为 thenable 对象),Promise.resolve 方法会将该对象转换为一个 Promise 对象,并将其解决结果作为该 Promise 对象的解决值。如果传递给 Promise.resolve 的参数已经是一个 Promise 对象,则它会直接返回该对象,不做任何处理。
以下是 Promise.resolve 的示例用法:
```javascript
// 创建一个已解决的 Promise 对象
const resolvedPromise = Promise.resolve("Resolved Value");
resolvedPromise.then(value => {
console.log(value); // 输出 "Resolved Value"
});
// 创建一个已解决的 Promise 对象,通过 thenable 对象
const thenable = {
then(resolve) {
resolve("Thenable Resolved Value");
}
};
const resolvedThenable = Promise.resolve(thenable);
resolvedThenable.then(value => {
console.log(value); // 输出 "Thenable Resolved Value"
});
// 返回传入的 Promise 对象
const existingPromise = new Promise(resolve => {
resolve("Existing Promise Resolved Value");
});
const resolvedExistingPromise = Promise.resolve(existingPromise);
resolvedExistingPromise.then(value => {
console.log(value); // 输出 "Existing Promise Resolved Value"
});
```
解释:
Promise.resolve 方法的作用是将一个值转换为一个已解决的 Promise 对象。如果传入的值是一个 Promise 对象,那么 Promise.resolve 方法会直接返回该对象。如果传入的值是一个 thenable 对象,它会转换为一个 Promise 对象,并将其解决结果作为解决值。如果传入的值是一个非 thenable 对象,它会被包装在一个新的 Promise 对象中,并将其作为解决值。
阅读全文