Promise.reject()
-
无论传什么参数都会返回一个失败的 Promise 对象
-
如果传入一个 非 Promise 类型的对象,则返回的结果为成功的 Promise 对象,值就是传进去的值
-
如果传入一个 Promise 类型的对象,返回的 Promise 的状态还是失败,值就是传进去的 Promise
// 是构造函数的方法,不是实例的方法,所以不要加 prototype
Promise.reject = function (value) {
// 返回一个 Promise 对象
return new Promise((resolve, reject) => {
reject(reason);
});
};
const p = Promise.reject("ok");
const p2 = Promise.reject(
new Promise((resolve, reject) => {
resolve("success");
})
);
const p3 = Promise.reject(
new Promise((resolve, reject) => {
reject("no ok");
})
);
const p4 = Promise.reject(
new Promise((resolve, reject) => {
setTimeout(() => {
resolve("success");
}, 1000);
})
);
const p5 = Promise.reject(
new Promise((resolve, reject) => {
new Promise((resolve, reject) => {
setTimeout(() => {
reject("no ok");
}, 1000);
});
})
);
console.log(p, "p"); // Promise {PromiseState: 'rejected', PromiseResult: 'ok', callbacks: Array(0)} 'p'
console.log(p2, "p2"); // Promise {PromiseState: 'rejected', PromiseResult: Promise, callbacks: Array(0)} 'p2'
console.log(p3, "p3"); // Promise {PromiseState: 'rejected', PromiseResult: Promise, callbacks: Array(0)} 'p3'
console.log(p4, "p4"); // Promise {PromiseState: 'rejected', PromiseResult: Promise, callbacks: Array(0)} 'p4'
console.log(p5, "p5"); // Promise {PromiseState: 'rejected', PromiseResult: Promise, callbacks: Array(0)} 'p5'