Promise中的执行器函数
时间: 2023-11-30 09:00:44 浏览: 33
在 Promise 中,执行器函数是一个函数,它在 Promise 对象被创建时立即执行。执行器函数接收两个参数:resolve 和 reject。
resolve 函数用于将 Promise 对象的状态设为“已完成”(fulfilled),并将 Promise 对象的值设为传递给 resolve 函数的值。reject 函数用于将 Promise 对象的状态设为“已拒绝”(rejected),并将 Promise 对象的值设为传递给 reject 函数的值。
执行器函数通常包含异步操作,例如网络请求或文件读取。在执行器函数中,如果异步操作成功完成,则调用 resolve 函数将 Promise 对象的状态设为“已完成”,并将异步操作的结果传递给 resolve 函数。如果异步操作失败,则调用 reject 函数将 Promise 对象的状态设为“已拒绝”,并将异步操作失败的原因传递给 reject 函数。
以下是一个简单的例子,演示了 Promise 中的执行器函数:
```
const promise = new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
const result = Math.random();
if (result < 0.5) {
// 如果异步操作成功,调用 resolve 函数
resolve(result);
} else {
// 如果异步操作失败,调用 reject 函数
reject(new Error('Async operation failed'));
}
}, 1000);
});
promise.then(
result => console.log(`Promise fulfilled with result: ${result}`),
error => console.error(`Promise rejected with error: ${error}`)
);
```
在上面的代码中,Promise 对象被创建时立即执行执行器函数。执行器函数是一个匿名函数,它接收两个参数:resolve 和 reject。在异步操作完成后,根据异步操作的结果调用 resolve 或 reject 函数,从而将 Promise 对象的状态设为“已完成”或“已拒绝”。最后,使用 then 方法处理 Promise 对象的状态变化,输出 Promise 对象的值或错误信息。