在JavaScript中,resolve()
和reject()
是Promise对象的两个方法,用于处理异步操作的结果。
resolve()
方法用于将Promise对象的状态从未完成(pending)变为已完成(fulfilled),并将异步操作的结果作为参数传递给后续的then()
方法。它接受一个参数,该参数可以是任意类型的值,表示异步操作的结果。
reject()
方法用于将Promise对象的状态从未完成(pending)变为已拒绝(rejected),并将异步操作的错误信息作为参数传递给后续的catch()
方法。它接受一个参数,通常是一个Error对象或一个字符串,表示异步操作的错误信息。
区别:
resolve()
用于处理异步操作成功的情况,将Promise对象的状态从未完成变为已完成,而reject()
用于处理异步操作失败的情况,将Promise对象的状态从未完成变为已拒绝。resolve()
方法的参数可以是任意类型的值,表示异步操作的结果,而reject()
方法的参数通常是一个Error对象或一个字符串,表示异步操作的错误信息。示例代码:
// 创建一个Promise对象
const promise = new Promise((resolve, reject) => {
// 异步操作
const result = 10;
if (result > 0) {
resolve(result); // 异步操作成功,调用resolve()方法
} else {
reject(new Error('操作失败')); // 异步操作失败,调用reject()方法
}
});
// 处理Promise对象的结果
promise.then((value) => {
console.log('操作成功,结果为:', value);
}).catch((error) => {
console.error('操作失败,错误信息为:', error);
});
在上述示例中,如果异步操作的结果大于0,则调用resolve()
方法将Promise对象的状态从未完成变为已完成,并将结果传递给后续的then()
方法进行处理。如果异步操作的结果小于等于0,则调用reject()
方法将Promise对象的状态从未完成变为已拒绝,并将错误信息传递给后续的catch()
方法进行处理。
领取专属 10元无门槛券
手把手带您无忧上云