JavaScript Guidebook

JavaScript 完全知识体系

Promise.reject

Promise.reject(reason) 方法返回一个带有 Rejected 原因的 Promise 对象。

语法

语法:

Promise.reject(reason);

类型声明:

interface PromiseConstructor {
reject<T = never>(reason?: any): Promise<T>;
}

参数说明:

参数说明类型
reason表示 Promise 被 Rejected 的原因any

方法描述

Promise.reject(reason) 方法也会返回一个新的 Promise 实例,该实例的状态为 Rejected。

const promise = Promise.reject('Error');
// 等同于
const promise = new Promise((resolve, reject) => reject('Error'));
promise.then(null, function (s) {
console.log(s);
});

注意:Promise.reject() 方法的参数,会原封不动地作为变更为 Rrejected 的理由,变成后续方法的参数。这一点与 Promise.resolve 方法不一致。

const thenable = {
then(resolve, reject) {
reject('Error');
},
};
Promise.reject(thenable).catch((e) => {
console.log(e === thenable); // true
});

上面代码中,Promise.reject 方法的参数是一个 thenable 对象,执行以后,后面 catch 方法的参数不是 reject 抛出的 Error 这个字符串,而是 thenable 对象。

代码示例

这段代码的功能是调用该 Promise 对象通过 .then() 指定的  onRejected  函数,并将错误(Error)对象传递给这个 onRejected  函数。

Promise.reject(new Error('BOOM!')).catch(function (error) {
console.error(error);
});