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);});