Promise.resolve()和new Promise.then()
时间: 2024-06-21 08:00:49 浏览: 111
`Promise.resolve()` 和 `new Promise.then()` 都是 JavaScript 中处理异步操作的 Promise 对象相关方法,它们在 Promise 处理流程中扮演着关键角色。
1. `Promise.resolve(value)`: 这是一个静态方法,用于创建一个已经解析(fulfilled)的 Promise,其参数 `value` 将作为成功时返回的结果。如果你传递的值已经是 Promise,它会被直接返回,不需要额外的处理。这个方法常用于简化异步操作或者将非Promise结果转化为Promise。
```javascript
let resolvedValue = Promise.resolve('Hello');
// 或者
let alreadyAPromise = new Promise((resolve) => resolve('World'));
let convertedPromise = Promise.resolve(alreadyAPromise); // 返回 alreadyAPromise
```
2. `new Promise.then(onFulfilled, onRejected)`: 这是一个构造函数,用于创建一个新的 Promise。当你调用 `then()` 方法时,你可以指定两个函数:`onFulfilled` 在 Promise 解决(fulfilled)时执行,`onRejected` 在 Promise 拒绝(rejected)时执行。这些函数通常用于处理异步操作的结果。
```javascript
let asyncTask = new Promise((resolve, reject) => {
setTimeout(() => resolve('Success'), 1000);
// 或者
// setTimeout(() => reject('Error'), 1000);
});
asyncTask.then((result) => {
console.log(result); // 输出 'Success' after 1 second
}, (error) => {
console.error(error); // 如果出现错误,这里会被调用
});
```
阅读全文